在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存储上了。