流式传输并压缩到S3我的目标是创建一个大的gzip文本文件并将其放入S3。从AWS Lambda Node.JS
文件内容由我从另一个源代码循环读取的块组成。
由于这个文件的大小我不能保存所有的数据在内存中,所以我需要以某种方式直接流到S3和ZIP在同一时间。
我明白如何在Node.JS中使用常规的fs
来执行这个技巧,但我很困惑是否有可能对来自AWS Lambda的S3执行相同的技巧?我知道s3.putObject
can consumestreamObject
,但在我看来,当我执行putObject
操作时,这个流应该已经完成,什么会导致超出允许的内存。
gzip文件是否大于Lambda临时磁盘(512 MB)? – jarmod
@jarmod可能不是,但假设我受限于128Mb lambda – Andremoniy
如果您可以接收整个文本文件,请将gzip格式保存到本地磁盘,并在Lambda超时内将其上传到S3,然后这应该足够简单。您大概可以使用分段上传至S3(http://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html)来避免无法将整个文件一次读入内存的问题。 – jarmod