我正在为我的用户实现一个文件/图片上传服务。在将这些图片上传到我的S3存储桶之前,我想对它们进行转换(调整大小/优化)。
目前的做法是:在前端使用多部分表单(我认为实际实现并不重要...),并在后端使用multer和multer-s3包。
以下是我实现的关键部分。
目前的做法是:在前端使用多部分表单(我认为实际实现并不重要...),并在后端使用multer和multer-s3包。
以下是我实现的关键部分。
// SETUP
var multer = require('multer');
var s3 = require('multer-s3');
var storage = s3({
dirname: 'user/uploads',
bucket: auth.aws.s3.bucket,
secretAccessKey: auth.aws.s3.secretAccessKey,
accessKeyId: auth.aws.s3.accessKeyId,
region: auth.aws.s3.region,
filename: function (req, file, cb) {
cb(null, Date.now());
}
});
var upload = multer({storage: storage}).single('img');
// ROUTE
module.exports = Router()
.post('/', function (req, res, next) {
upload(req, res, function (err) {
if (err) {
return res.status(401).json({err: '...'});
}
return res.json({err:null,url: '..'});
});
});
我想要做的事情是: 在上传图像之前对其进行转换。 我不确定是否需要在这里使用multer/busboy,还是可以只使用NodeJS完成(因此我也标记了NodeJS和express)。
那么我的问题是:在上传到我的S3存储桶之前,在哪里可以拦截并转换上传的图像?