是否可以从AWS S3批量下载?

时间:2019-12-12 06:44:03

标签: amazon-web-services amazon-s3 aws-lambda

我想知道是否有可能,以及如何从AWS S3批量下载?
从AWS S3文档中,似乎支持getObject SDK方法,一次仅获取一个对象

但是AWS S3中有一个名为S3 batch operations的功能

enter image description here

不确定S3批处理操作是否支持创建用于下载多个对象的作业的用例?

我正在使用的应用程序正在使用AWS Lambda,
我要提取的批量文件主要是图像,
因此下载操作要对100个文件进行,其最终zip大小可能会超过250 MB

有人用过这种用例吗?
如果可以的话,如何实现?

2 个答案:

答案 0 :(得分:2)

不,这是不可能的。

没有API调用可下载多个文件。相反,您将需要发出多个API调用。您可以在应用程序中使用多线程或使用异步来更快地下载它们。

请注意::如果您的目标是将多个文件转换为单个Zip文件,则可能会超出提供给AWS Lambda函数的磁盘存储空间。 /tmp/中只有500MB的磁盘空间提供给该函数,因此它将需要包含未压缩的压缩文件。如果文件总数超过此磁盘空间,则可能会造成困难。

答案 1 :(得分:1)

本文通过利用 nodejs 流确保您不会达到 lambda 内存和文件系统限制,从而有一个潜在的良好开端。如果完成时间成为问题,也许可以在步骤 fn 中使用检查点进行包装。

Zip files on S3 with AWS Lambda and Node