2

我正在使用 multer s3 将图像从我的 node.js 应用程序上传到我的亚马逊存储桶。我使用日期和原始文件名来创建新文件名;但是,当我尝试显示新文件名时,它只是显示为未定义。这是我的代码:

    var upload = multer({
  storage: multerS3({
    s3: s3,
    bucket: 'imagebucket',
    acl: 'public-read',
    metadata: function (req, file, cb) {
      cb(null, Object.assign({}, req.body));
    },
    key: function (req, file, cb) {
        console.log(file);
        cb(null, Date.now()+file.originalname);
    }
  })
})

app.post('/upload', upload.single('upload'), function(req, res, next) {
  res.send('Successfully uploaded ' + req.file.length + ' files!')
})

欢迎任何帮助。

4

2 回答 2

1

看起来您没有将字符串传递给 key 函数

请试试这个:

key: function (req, file, cb) {
    console.log(file);
    cb(null, `${Date.now().toString()}${file.originalname}`);
}
于 2018-03-06T00:58:50.633 回答
0

在最后一个函数中间件中尝试 req.file.location

于 2018-05-04T22:46:41.920 回答