我查看了所有 AWS 码头和堆栈溢出(甚至去了谷歌的第 4 页!!!),但我一生都无法弄清楚如何从 S3 流式传输文件。V3 的文档非常无用,我找到的所有示例都来自 V2。
V3 使用的发送公共仅返回一个承诺,那么我如何获取流并通过管道传输它而不是等待整个文件(它需要通过管道传输到加密算法,然后传输到响应流)
this.s3.send(
new GetObjectCommand({
Bucket: '...',
Key: key,
}),
);
Run Code Online (Sandbox Code Playgroud)
我能够通过将流作为正文传递来很好地上传,我在这里需要做类似的事情吗?
uploadToAws(key) {
const pass = new PassThrough();
return {
writeStream: pass,
promise: this.s3.send(
new PutObjectCommand({
Bucket: '...',
Key: key,
Body: pass,
ServerSideEncryption: '...',
ContentLength: 37,
}),
),
};
}
Run Code Online (Sandbox Code Playgroud)