#node.js #express #multer #multer-s3
Вопрос:
У меня есть эта проблема, в которой я хочу загрузить 3-5 изображений. В этом случае размер файла может быть не более 2,5 МБ.
Я использую Node.js, Express и Multer, и это отлично работает — до тех пор, пока мне не понадобится понять, какой файл превышает лимит файлов.
Я получаю сообщение с ответом «файл на большой», но я не могу понять, какое из изображений было большим.
Есть какие-нибудь предложения?
С наилучшими пожеланиями, Оскар
const maxSize = 2.5 * 1000 * 1000;
const uploader = multer({
limits: { fileSize: maxSize },
fileFilter: (req, file, cb) => {
const { error } = createItemValidation(req.body);
if (error) {
return cb(new Error(error.details[0].message));
} else if (
file.mimetype == "image/png" ||
file.mimetype == "image/jpg" ||
file.mimetype == "image/jpeg"
) {
cb(null, true);
} else {
cb(null, false);
return cb(new Error("Only .png, .jpg and .jpeg format allowed!"));
}
},
storage: multerS3({
s3: s3,
bucket: "shopitemimages",
acl: "public-read",
limits: { fileSize: maxSize },
contentType: multerS3.AUTO_CONTENT_TYPE,
metadata: function (req, file, cb) {
cb(null, { fieldName: "lets see what we want as fieldvalue" });
},
key: function (req, file, cb) {
cb(null, Date.now().toString());
},
}),
});