在S3 API上使用multer上传图片返回undefined

我正在构build一个用于上传图像并将其直接存储在S3存储上的API。 要做到这一点,我使用Postman.Method是POST和inputtypes是file.When我使用req.files或req.file时,我得到未定义。

Utils.js:

getS3SignUrl: function( uri ){ return s3_client.getSignedUrl('putObject',{Bucket:config.aws.bucket,Key:uri,ACL :"public-read"}) } 

在主文件中我使用这些:

 var bodyParser = require('body-parser'); var upload = require('multer')(); var utils = require('../service/utils.js'); router.post('/edit-profile', upload.single('newfile'), function(req, res) { console.log(req.file); }); }); 

在控制台中,我得到了未定义,但是当我使用debugging器和req.body,我得到这个: 在这里输入图像说明

所以,似乎我有这个需求,但是我怎么能从这里拿走呢?

除了Muller之外,我还安装了MulterS3模块:

 var multerS3 = require('multer-s3'); 

然后,我configuration它。 我也用一个表格来testing它,我使用enctype="multipart/form-data"

 router.post('/ceva', multer({ storage: multerS3({ s3: s3_client, bucket: "****", acl: '**', metadata: function (req, file, cb) { cb(null, {fieldName: file.fieldname}); }, key: function (req, file, cb) { cb(null, "users/10/1"); } }) }).single('newfile'), function(req, res) { console.log(req.files); res.send('da'); }); 

因此,这些文件已经成功上传到S3存储上了。