流式傳輸並壓縮到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