我想使用s3.getObject(params).createReadStream().pipe(writableStream)
直接在fs中写入s3中的对象(目的是减少RAM使用)。
我真正关心的是价格,我不知道价格如何工作,并且想要避免对s3进行多次GET
调用,这可能会很昂贵。
我的猜测是,HTTP请求已经像使用原始数据包的流一样工作,而aws-sdk只是将其包装在节点流中。但是另一种可能性是连续请求对象的一部分,并因此使用多个GET调用。
我的搜索失败,你有主意吗?
答案 0 :(得分:0)
使用流不会影响价格,只会改变您处理传入数据的方式。
const s3 = new AWS.S3();
const source = s3.getObject({ Key: 'key', Bucket: 'bucket-name' }).createReadStream();
const target = fs.createWriteStream('/your/local/path/to/store/the/object');
source.pipe(target).on('end', () => {
console.log('Object stored...')
// Custom code here...
})
.on('error', err => {
console.log('Something went wrong...')
// Custom code here...
})
希望这对您有帮助...