使用 multer returns undefined 在 S3 API 上传图片
Upload image on S3 API using multer returns undefined
我正在构建一个 API 用于上传图像并将它们直接存储在 S3 存储上。为此,我使用 Postman.Method 是 POST 并且输入类型是 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);
});
});
在控制台中,我未定义,但是当我使用调试器和 req.body 时,我得到:
所以,我好像在 req.body 里有它,但我怎样才能从这里拿走它?
除了 multer,我还安装并包含了 multerS3 模块:
var multerS3 = require('multer-s3');
然后,我配置了它。我也用我应用 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存储。
我正在构建一个 API 用于上传图像并将它们直接存储在 S3 存储上。为此,我使用 Postman.Method 是 POST 并且输入类型是 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);
});
});
在控制台中,我未定义,但是当我使用调试器和 req.body 时,我得到:
所以,我好像在 req.body 里有它,但我怎样才能从这里拿走它?
除了 multer,我还安装并包含了 multerS3 模块:
var multerS3 = require('multer-s3');
然后,我配置了它。我也用我应用 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存储。