簡體   English   中英

AWS lambda函數可從s3檢索所有上傳的文件,然后將解壓縮的文件夾再次上傳回s3

[英]AWS lambda function to retrieve any uploaded files from s3 and upload the unzipped folder back to s3 again

我有一個s3存儲桶,供用戶上傳壓縮目錄(大小通常為1GB)。 壓縮目錄將圖像保存在子文件夾等中。

我需要創建一個lambda函數,該函數將在新上傳后觸發,解壓縮文件,然后將解壓縮后的內容上傳回s3存儲桶,因此我可以通過http訪問單個文件- 但我對如何使用卻一無所知我可以寫這樣的功能嗎?

我擔心的是:

  • Pyphon或Java可能比nodejs更好的性能?
  • 解壓縮GB或更大容量的文件時,避免用完內存(我可以將內容流回到s3嗎?)

AWS Lambda常見問題解答指出:

每個Lambda函數在其自己的/ tmp目錄中接收500MB的非永久磁盤空間。

這將不足以存儲1GB的zip文件以及未壓縮的內容。

您將需要在范圍內流式傳輸“輸入” zip文件,並將解壓縮的文件存儲在小組中,以避免出現此問題。 對於此應用程序,可能不值得使用Lambda。

目前,AWS Lambda的執行時間限制為5分鍾。

如果您的下載+解壓縮+上傳時間超過5分鍾,Lambda將無法為您服務。

這是一些解決方案的參考: https : //serifandsemaphore.io/aws-lambda-going-beyond-5-minutes-34e381e71231#.maz4sfo43

由於其他張貼者提到的原因,Lambda不太適合實際處理文件。 但是,由於它與S3事件集成,因此可以用作其他事件的觸發器。 它可以將消息發送到SQS,在EC2上運行的另一個進程(ECS,ElasticBeanstalk,ECS)可以處理隊列中的消息,然后處理來自S3的文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM