#node.js #amazon-s3 #multer #multer-s3
#node.js #amazon-s3 #мультер #multer-s3
Вопрос:
Я смог подключить свою корзину S3 к своему веб-приложению с помощью multerS3, однако я не уверен, как ограничить файлы, которые могут быть загружены только в изображения. До того, как я использовал S3, я использовал multerFilter для проверки типа mime, и это сработало. Однако теперь, используя тот же код, кажется, что любой тип файла будет загружен в мою корзину S3. Каков наилучший способ ограничить типы файлов изображениями с помощью multerS3? Спасибо.
const multerFilter = (req, file, cb) => {
if (file.mimetype.startsWith('image')) {
cb(null, true);
} else {
cb(new AppError('Not an image! Please upload images only.', 400), false);
}
};
const upload = multer({
storage: multerS3({
s3: s3,
acl: 'public-read',
bucket: 'BUCKET NAME',
contentType: multerS3.AUTO_CONTENT_TYPE,
fileFilter: multerFilter,
}),
});
Ответ №1:
Я идиот. Я вижу ошибку в своем коде и исправил ее. Я не должен был вводить fileFilter
внутри storage
настройки. Это фиксированный код:
const upload = multer({
storage: multerS3({
s3: s3,
acl: 'public-read',
bucket: 'BUCKET NAME',
contentType: multerS3.AUTO_CONTENT_TYPE,
}),
fileFilter: multerFilter,
});
Комментарии:
1. ContentType: multerS3.AUTO_CONTENT_TYPE, спасибо,