Arp*_*hak 5 javascript amazon-s3 node.js multer multer-s3
我想处理和验证来自 multer 的视频和图像文件。Multer 中间件可以有 1 个视频文件和 10 个图像。我想验证它是否只有 10 个图像和 1 个视频文件。我还想验证文件大小。我想要视频有 25mb,图像有 5mb。但限制选项仅采用一种文件大小。这里它验证 5mb 文件。如何验证视频,应为 25mb。
const multerS3 = require('multer-s3');
const multer = require('multer');
const AWS = require('aws-sdk');
const s3 = new AWS.S3({
accessKeyId: process.env.ACCESS_KEY_ID,
secretAccessKey: process.env.SECRET_ACCESS_KEY,
region: process.env.REGION
});
const fileFilter = (req, file, cb) => {
console.log(file.mimetype);
if (file.mimetype === 'image/jpeg' || file.mimetype === 'image/png') {
cb(null, true);
} else {
cb(null, false);
}
cb(null, true);
};
const middleware = function(req, res, next) {
let upload = multer({
storage: multerS3({
s3: s3,
bucket: process.env.BUCKET_NAME,
acl: 'public-read',
cacheControl: 'max-age=31536000',
contentType: multerS3.AUTO_CONTENT_TYPE,
metadata: function(req, file, cb) {
// console.log('in callback');
cb(null, { fieldName: file.fieldname });
},
key: function(req, file, cb) {
// console.log('in callback 2');
cb(null, Date.now().toString() + '-' + file.originalname);
}
}),
fileFilter: fileFilter,
limits: {
fileSize: 1024 * 1024 * 5
}
}).fields([
{ name: 'images', maxCount: 10 },
{ name: 'video', maxCount: 1 }
]);
upload(req, res, function(err) {
console.log(err);
next();
});
};
module.exports = middleware;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1929 次 |
最近记录: |