gpt4 book ai didi

node.js - 如何使用 aws-sdk v3 从 S3 保存文件

转载 作者:行者123 更新时间:2023-12-04 03:37:01 25 4
gpt4 key购买 nike

使用新的 aws-sdk v3,特别是 @aws-sdk/client-s3 ,我不清楚如何将文件从 S3 存储到磁盘。
有以下代码

const { Body } = await s3.send(new GetObjectCommand({
Bucket: 'myBucket',
Key: 'myKey',
}))
Body可以是 Readable | ReadableStream | Blob 类型.
我想将它存储到磁盘上的文件中。由于返回类型完全不同,是否有一种简单的方法可以例如得到一个 BufferStream.Readable来自aws-sdk?
在 aws-sdk v2 中,使用 .createReadStream() 很容易似乎不再存在的功能。

最佳答案

出现ReadableStream | Blogavailable only in browser . Node.js 总是得到 Readable这就是我需要的。
使用 fs.createWriteStream 之后的解决方案非常简单。并用管道输送 Readable

await new Promise((resolve, reject) => {
Body.pipe(fs.createWriteStream(filePath))
.on('error', err => reject(err))
.on('close', () => resolve())
})
作为引用,这里有一个讨论文档改进的问题 https://github.com/aws/aws-sdk-js-v3/issues/1877

关于node.js - 如何使用 aws-sdk v3 从 S3 保存文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66689614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com