[使用lambda上传到s3文件的文件流

问题描述 投票:0回答:1

我正在使用Box api开发AWS。我想使用lambda函数将文件上传到s3存储桶。但给出错误

我正在使用此api https://developer.box.com/en/reference/get-files-id-content/获取文件的内容并上传到s3存储桶。但是内容在流中。

下面是我的代码

 let status= await  appUserClient.files.getReadStream(fileId, null, async function(error, stream) {
     var params = {Bucket: 'bucketname', Key: 'key.csv', Body: stream};
      let status= await s3.upload(params, function(err, data) {
          if (err) {
              console.log(err);
            return 0;
          }else{
               console.log(data);
              return 1;
          }
      }).promise();
});
amazon-s3 aws-lambda box-api
1个回答
0
投票

您可以尝试这种方式

   const stream = require('stream');
   function uploadFromStream(s3) {
     var pass = new stream.PassThrough();

     var params = {Bucket: BUCKET, Key: KEY, Body: pass};
     s3.upload(params, function(err, data) {
        console.log(err, data);
     });

     return pass;
}

现在您可以使用它

appUserClient.files.getReadStream(fileId, null,function(error, stream){

    if(error){
       console.log(error)
      }
    else{
      stream.pipe(uploadFromStream(s3))
     }
 });
© www.soinside.com 2019 - 2024. All rights reserved.