2016-11-16 31 views
0

我有一个s3存储桶,用于用户上传压缩目录(通常为1GB大小)。压缩目录在子文件夹中保留了图像等等。AWS lambda函数从s3中检索上传的文件并将解压后的文件夹再次上传到s3

我需要创建一个lambda函数,它会在新上传时触发,解压文件并将解压后的内容上传回s3存储桶,这样我就可以通过http访问各个文件 - 但我对于我如何编写这样一个函数非常无能?

我的担忧是:

  • Pyphon或Java可能已经结束的NodeJS更好的性能?
  • 避免耗尽内存,解压一个GB或更大的文件时(我可以将内容流传输回S3?)

回答

2

AWS Lambda FAQ状态:

每个lambda函数接收的非持久性的磁盘空间500MB在自己的/ tmp目录。

这将是不足用于存储1GB zip文件,加上解压缩的内容。

您需要将范围内的'input'zip文件串流化,并将解压缩的文件存储在小组中以避免此问题。这可能是不值得使用Lambda这个应用程序。

0

由于其他海报提到的理由,Lambda不适合实际处理文件。但是,由于它与S3事件集成在一起,它可以用作其他事物的触发器。它可以向SQS发送消息,在ECS上运行的另一个进程(ECS,ElasticBeanstalk,ECS)可以处理队列中的消息,然后处理来自S3的文件。