【发布时间】:2015-12-24 20:45:05
【问题描述】:
使用 Amazon REST API,是否可以通过一次操作在一个存储桶中下载多个文件? 例如压缩所有对象并将它们作为一个文件下载?
请注意,我正在寻找运营效率而不是定制解决方案。 例如,我要从 S3 下载每个单独的文件并自己创建 ZIP 文件,对于 100 个 1.5MB 大小的文件,操作可能需要长达 40 秒,我正在寻找一种解决方案,让我可以在 10 秒内完成此操作.
【问题讨论】:
使用 Amazon REST API,是否可以通过一次操作在一个存储桶中下载多个文件? 例如压缩所有对象并将它们作为一个文件下载?
请注意,我正在寻找运营效率而不是定制解决方案。 例如,我要从 S3 下载每个单独的文件并自己创建 ZIP 文件,对于 100 个 1.5MB 大小的文件,操作可能需要长达 40 秒,我正在寻找一种解决方案,让我可以在 10 秒内完成此操作.
【问题讨论】:
在 S3 中没有可以执行此操作的 REST 调用。
您无疑意识到,传输带宽不太可能占您的进程所花费的挂钟时间的大部分。
最可能的解决方案是使用多线程或异步 I/O(取决于您的语言和环境)以并行组的形式将请求发送到 S3,并在成功获取所有所需对象后组合结果.
当然,如果您现在所做的不重用用户代理的连接以便您可以利用 HTTP 保持活动,那么如果您可以启用该功能,您应该会看到一定程度的性能改进,避免不必要的重复连接设置(以及潜在的 SSL 协商)。
【讨论】: