使用一个操作从Amazon S3下载多个对象

本文关键字:S3 Amazon 下载 对象 一个 操作 | 更新日期: 2023-09-27 18:14:38

使用Amazon REST API,是否有办法在一个Bucket中使用单个操作下载多个文件?例如,压缩所有对象并将它们作为一个文件下载?

请注意,我正在寻找操作效率,而不是定制解决方案。例如,我要从S3下载每个单独的文件并自己创建ZIP文件,对于100个1.5MB大小的文件,操作可能需要长达40秒的时间,我正在寻找一个解决方案,让我在不到10秒的时间内完成此操作。

使用一个操作从Amazon S3下载多个对象

在S3中没有REST调用可以做到这一点。

您无疑已经意识到,传输带宽不太可能占到进程占用的挂钟时间的大部分。

最可能的解决方案是使用多线程或异步I/O(取决于您的语言和环境)以并行组的形式将请求发送到S3,并在成功获取所有所需对象时合并结果。

当然,如果您现在正在做的事情没有重用用户代理的连接,因此您可以利用HTTP保持活动,那么如果您可以启用该功能,通过避免不必要的重复连接设置(以及潜在的SSL协商),您应该可以看到某种程度的性能改进。