我正在使用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();
});
您可以尝试这种方式
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))
}
});