Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何使用aws sdk v3从S3保存文件_Node.js_Amazon S3_Aws Sdk_Aws Sdk Nodejs - Fatal编程技术网

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

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 v3,特别是
@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())
})
这里有一个讨论文档改进的问题供参考

检查此问题