我想知道是否有可能,以及如何从AWS S3批量下载?
从AWS S3文档中,似乎支持getObject SDK方法,一次仅获取一个对象
但是AWS S3中有一个名为S3 batch operations
的功能
不确定S3批处理操作是否支持创建用于下载多个对象的作业的用例?
我正在使用的应用程序正在使用AWS Lambda,
我要提取的批量文件主要是图像,
因此下载操作要对100个文件进行,其最终zip大小可能会超过250 MB
有人用过这种用例吗?
如果可以的话,如何实现?
答案 0 :(得分:2)
不,这是不可能的。
没有API调用可下载多个文件。相反,您将需要发出多个API调用。您可以在应用程序中使用多线程或使用异步来更快地下载它们。
请注意::如果您的目标是将多个文件转换为单个Zip文件,则可能会超出提供给AWS Lambda函数的磁盘存储空间。 /tmp/
中只有500MB的磁盘空间提供给该函数,因此它将需要包含未压缩的和压缩文件。如果文件总数超过此磁盘空间,则可能会造成困难。
答案 1 :(得分:1)
本文通过利用 nodejs 流确保您不会达到 lambda 内存和文件系统限制,从而有一个潜在的良好开端。如果完成时间成为问题,也许可以在步骤 fn 中使用检查点进行包装。