【发布时间】:2020-09-04 14:29:04
【问题描述】:
我正在使用 multer 和 multer-s3 将图像上传到 s3 存储桶。
我想保持原图不变,但需要额外的缩略图。 然后将它们都上传到s3。 我发现可以使用Sharp来调整图像大小,但不确定如何执行此特定任务。
任何人都可以建议如何做到这一点?
const aws = require('aws-sdk');
const multer = require('multer');
const multerS3 = require('multer-s3');
aws.config.update({
secretAccessKey: process.env.AWSSecretKey,
accessKeyId: process.env.AWSAccessKeyId,
});
const s3 = new aws.S3();
const fileFilter = (req, file, cb) => {
if (file.mimetype === "image/jpeg" || file.mimetype === "image/png") {
cb(null, true);
} else {
cb(new Error("Invalid file type, only JPEG and PNG is allowed!"), false);
}
};
const storage = multerS3({
s3: s3,
bucket: process.env.S3_Bucket_Name,
acl: 'public-read',
metadata: (req, file, cb) => {
cb(null, {
fieldName: file.fieldname
});
},
key: (req, file, cb) => {
cb(null, Date.now().toString())
}
});
const upload = multer({
fileFilter: fileFilter,
storage: storage,
});
module.exports = upload;
路由按以下方式完成
router.post('/post/add', checkAuth, upload.single("photo"), PostController.createPost);
【问题讨论】:
标签: express aws-sdk image-resizing multer multer-s3