我正在尝试使用multer和multer-s3 for Nodejs将文件上传到我的 s3 存储桶。我现在遇到的问题是我想动态设置我的 s3 实例,因为 s3 帐户和存储桶取决于我的用户设置。
我有以下代码:
我的上传者
var uploader = multer({
storage: multerS3({
s3: function(req, file, cb){
cb(null, new AWS.S3({
// my s3 settings from req.body or getting directly from my db
}))
},
bucket: function (req, file, cb){
cb(null, req.body.bucket)
},
metadata: function (req, file, cb) {
cb(null, {
fieldName: file.fieldname
});
},
key: function (req, file, cb) {
console.log(`Key is ${req.body.prefix + file.originalname}`);
cb(null, req.body.prefix + file.originalname)
}
})
}).single('file');
api.post('/upload', uploader, function (req, res, next) {
if (err)
return res.status(500).json({ message: err });
res.status(200).json({
message: 'uploaded'
});
});
问题是multer-s3不允许 s3 选项的函数作为参数,而是 s3 对象。
我怎样才能接近这个?