Nodejs にmulterとmulter -s3を使用して、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 オブジェクトを許可することです。
どうすればこれに近づくことができますか?