代码之家  ›  专栏  ›  技术社区  ›  Emanuela Colta

使用multer在s3api上上传图像返回未定义

  •  1
  • Emanuela Colta  · 技术社区  · 7 年前

    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,我明白了: enter image description here

    所以,似乎我在req中有它。尸体,但我怎么能从这里拿走?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Emanuela Colta    7 年前

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