2

我正在尝试使用multermulter-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 对象。

我怎样才能接近这个?

4

0 回答 0