nodejs multiparty不支持s3上传

时间:2016-07-18 12:31:48

标签: node.js amazon-s3

我尝试通过multiparty实现s3上传,但它不起作用。

有两个问题取决于byteCount变量。

如果我设置了ContentLenght:part.byteCount,则s3文件上传无效。

但是,如果我省略ContentLength:part.byteCount,s3文件上传工作正常。 但是上传了整个文件的唯一部分(流的块?)。 例如)源文件大小:100kb,上传文件大小:20kb

我的代码如下。我的代码有问题吗?:

var form = new multiparty.Form();

form.on('field',function(name,value){    

});  

form.on('close',function(){    
  res.json({success:true});
});  

form.on('part',function(part){

  if(!part.filename) {
    part.resume();
  } 

  s3 = new AWS.S3();
  var params = {Bucket: s3bucket, Key: tempFileName, Body: part, ContentLength:part.byteCount};

  s3.upload(params, function(err, data) {                      
    console.log('s3 upload');     
  });       


  part.on('data',function(chunk){
    console.log(part.filename+' read '+chunk.length + 'bytes');
  });


  part.on('end',function(){      
    console.log(part.filename+' Part read complete');      
  }); 

}); 

form.on('progress',function(byteRead,byteExpected){
     console.log(' Reading total  '+byteRead+'/'+byteExpected);
});  

form.on('error', function(err) {
  console.log('err');
});

form.parse(req);

0 个答案:

没有答案
相关问题