我无法使用multer-s3上传大文件。它也没有给我任何错误。

时间:2017-12-19 10:48:25

标签: node.js amazon-s3 bucket multer-s3

我无法使用multer-s3上传大文件。它也没有给我任何错误。它只是没有上传文件,甚至没有进入回调并获得超时。有没有办法处理上传大文件到s3 Bucket?

我正在使用它:

var uploadSingle = upload.single('uploadFile');

router.post('/uploadVideo',function(req,res,next){  
    uploadSingle(req,res,function(err){
                // doesn't come here if the file is large
            if(err){
                //Error Response , Error while uploading Module PDF;
            }
            else{
                //handling file upload
               // success response
            }
    });
}

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,研究了this page之后,我发现我需要添加contentLength作为参数之一。其值为字节长度。

const s3 = new AWS.S3({
    accessKeyId: process.env.S3_ACCESS_KEY_ID,
    secretAccessKey: process.env.S3_SECRET_ACCESS_KEY
});

var upload = multer({
  storage: multerS3({
    s3: s3,
    bucket: 'myBucket',
    contentType: multerS3.AUTO_CONTENT_TYPE,
    contentLength: 500000000,
    metadata: function (req, file, cb) {
      cb(null, {fieldName: file.fieldname});
    },
    key: function (req, file, cb) {
      cb(null, file.originalname);
    }
  })
});

router.post('/uploadToS3', upload.array('photos', 30), function(req, res, next) {
  res.send({"message": 'Successfully uploaded ' + req.files.length + ' files!'});
})