使用connect-busboy和node.js并上传到S3

时间:2015-08-23 14:23:05

标签: node.js amazon-s3 busboy

我真的很难上传到S3。 我想使用STREAMING将视频文件上传到S3(即不在服务器上保存临时文件,然后上传到s3)

我不知道如何设置s3上传功能以便从流中读取。 似乎connect-busboy创建了一个无人读取的流。

这是我的代码:

app.post('/upload', function (req, res) {
console.log(req.body.FileBox);
req.busboy.on('file', function (fieldname, file, filename) {

     //videoUpload.upload(req.body.FileBox);
     var params = {
         Bucket: 'videogamblerside',
         Key: "chek",
         Body: file,
         ContentType: "video/mp4"
     };
    console.log(file);
    //file.resume();
    //  file.resume();
    s3.upload(params, function (err, data) {
        if (err) throw err;
    });

1 个答案:

答案 0 :(得分:0)

  

您可能想要添加ContentLength

此代码示例适用于我:

busboy.on('file', function(fieldname, file, filename, encoding, mimetype) {



        s3Client.putObject({
          Bucket: bucket,
          Key: filename,
          ACL: 'public-read',
          Body: file,
          ContentLength: 3000,
        }, function(err, data) {
          if (err) throw err;
          console.log("done", data);
          console.log("https://s3-ap-southeast-1.amazonaws.com/" + bucket + '/' + random_name);
        })

    });



    busboy.on('finish', function() {
      res.send("That's all folks!");
    });