Node.js 如何使用aws sdk v3从S3保存文件
对于新的aws sdk v3,特别是Node.js 如何使用aws sdk v3从S3保存文件,node.js,amazon-s3,aws-sdk,aws-sdk-nodejs,Node.js,Amazon S3,Aws Sdk,Aws Sdk Nodejs,对于新的aws sdk v3,特别是@aws sdk/client-s3,我不清楚如何将文件从s3存储到磁盘。 具有以下代码 const{Body}=wait s3.send(new GetObjectCommand({ 桶:“我的桶”, 密钥:“myKey”, })) Body的类型可以是Readable | ReadableStream | Blob 我想把它存储到磁盘上的一个文件中。由于返回类型完全不同,是否有一种简单的方法,例如从aws sdk获取缓冲区或Stream.Readable
@aws sdk/client-s3
,我不清楚如何将文件从s3存储到磁盘。具有以下代码
const{Body}=wait s3.send(new GetObjectCommand({
桶:“我的桶”,
密钥:“myKey”,
}))
Body
的类型可以是Readable | ReadableStream | Blob
我想把它存储到磁盘上的一个文件中。由于返回类型完全不同,是否有一种简单的方法,例如从aws sdk获取
缓冲区
或Stream.Readable
在aws sdk v2中,使用似乎不再存在的
.createReadStream()
函数很容易。看起来ReadableStream | Blog
是。Node.js总是可读,这正是我所需要的
通过使用fs.createWriteStream
和管道化可读的
,解决方案非常简单,例如
等待新的承诺((解决、拒绝)=>{
Body.pipe(fs.createWriteStream(文件路径))
.on('error',err=>reject(err))
.on('close',()=>resolve())
})
这里有一个讨论文档改进的问题供参考检查此问题