2

Nodejs にmultermulter -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 オブジェクトを許可することです。

どうすればこれに近づくことができますか?

4

0 に答える 0