2017-04-16 149 views
0

我需要下载并从S3存储并上传提取的tar.gz文件到另一个bucket.The文件被正确下载到S3和结果正在返回为二进制数据使用s3.getObject如何上传二进制文件使用节点JS使用S3键属性

我需要通过二进制数据(文件)S3桶使用s3.putOBject上传。

但我不知道什么是“”在给了“钥匙” PARAMS s3.putOBject当我们的二进制文件推送到s3.putObject。请帮助我。

这是我的代码

var bucketName = "my.new.Bucket-Latest"; 

var fileKey = "Employee.tar.gz"; 

var params = { Bucket: bucketName, Key: fileKey }; 

s3.getObject(params, function(err, data,callback) { 
if (err) { 
    console.log(err); 
    callback(err); 
} 
else { 
    zlib.gunzip(data.Body, function (err, result) { 
     if (err) { 
      console.log(err); 
     } else { 
      var extractedData = result; 
      s3.putObject({ 
      Bucket: "bucketName", 
      Key: " ", 
      Body: extractedData, 
      ContentType: 'content-type' 
      }, function (err) { 
       console.log('uploaded file: ' + err); 
      }); 
     } 
    }); 
    } 
}); 

回答

0

良好,即使自己的代码表示,这关键是文件名。只需生成一些文件名并分配给关键属性。这就像文件系统。当你创建一个新文件时,你应该给它一些名字。

+0

我可以给单个文件的名称。但我上传多个文件为二进制文件,在这种情况下,我可以给予的名称?请给我建议 – vishnu

+0

ManyFilesArchived.gz怎么样?我告诉过你和文件系统一样,bucket只是“文件夹”。 –

+0

我应该迭代每个文件从二进制文件并分配给密钥?请帮助我如何详细进行? – vishnu