Amazon web services 来自bucket的AWS s3 V3 Javascript SDK流文件(GetObjectCommand)
我查看了所有的AWS站点和堆栈溢出(甚至进入了谷歌的第4页!!!),但我一辈子都无法解决如何从S3流式传输文件。V3的文档非常无用,我找到的所有示例都来自V2 V3使用的send commond只返回一个承诺,那么我如何获取一个流并通过管道传输它,而不是等待整个文件(它需要通过管道传输到加密算法,然后再传输到响应流) 我能够上传罚款通过传递流作为身体,有什么我必须做类似的事情在这里Amazon web services 来自bucket的AWS s3 V3 Javascript SDK流文件(GetObjectCommand),amazon-web-services,amazon-s3,Amazon Web Services,Amazon S3,我查看了所有的AWS站点和堆栈溢出(甚至进入了谷歌的第4页!!!),但我一辈子都无法解决如何从S3流式传输文件。V3的文档非常无用,我找到的所有示例都来自V2 V3使用的send commond只返回一个承诺,那么我如何获取一个流并通过管道传输它,而不是等待整个文件(它需要通过管道传输到加密算法,然后再传输到响应流) 我能够上传罚款通过传递流作为身体,有什么我必须做类似的事情在这里 uploadToAws(key) { const pass = new PassThrough();
uploadToAws(key) {
const pass = new PassThrough();
return {
writeStream: pass,
promise: this.s3.send(
new PutObjectCommand({
Bucket: '...',
Key: key,
Body: pass,
ServerSideEncryption: '...',
ContentLength: 37,
}),
),
};
}
GetObjectCommand
中的Body
是一个可读流()
因此,您可以:
const命令=新建GetObjectCommand({
水桶
钥匙
});
const item=wait s3Client.send(命令);
item.Body.pipe(createWriteStream(文件名));
GetObjectCommand
中的Body
是一个可读流()
因此,您可以:
const命令=新建GetObjectCommand({
水桶
钥匙
});
const item=wait s3Client.send(命令);
item.Body.pipe(createWriteStream(文件名));
您先生/夫人是一位传奇人物。非常感谢。不清楚,我必须等待承诺的回应,然后从中检索流。您先生/夫人是一位传奇人物。非常感谢。不清楚我必须等待promise响应并从中检索流。
uploadToAws(key) {
const pass = new PassThrough();
return {
writeStream: pass,
promise: this.s3.send(
new PutObjectCommand({
Bucket: '...',
Key: key,
Body: pass,
ServerSideEncryption: '...',
ContentLength: 37,
}),
),
};
}