【问题标题】:Download million files from S3 bucket从 S3 存储桶下载数百万个文件
【发布时间】:2018-10-31 05:48:30
【问题描述】:
我在 S3 存储桶的不同文件夹中有数百万个文件。
文件非常小。我想下载所有的文件
在名为 VER1 的文件夹下。文件夹VER1 包含许多子文件夹,
我希望下载VER1的所有子文件夹下的所有百万文件。
(例如VER1-> sub1-> file1.txt ,VER1-> sub1 -> subsub1 -> file2.text 等)
下载所有文件的最快方法是什么?
使用s3 cp? s3 sync?
有没有办法并行下载文件夹下的所有文件?
【问题讨论】:
标签:
amazon-web-services
amazon-s3
【解决方案1】:
使用AWS Command-Line Interface (CLI):
aws s3 sync s3://bucket/VER1 [name-of-local-directory]
根据我的经验,它会并行下载,但不一定会使用全部带宽,因为每个对象都有很多开销。 (对于大型对象来说效率更高,因为开销更少。)
可能aws s3 sync 可能在处理大量文件时遇到问题。您必须尝试一下,看看它是否有效。
如果您真的想要充分的性能,您可以编写自己的代码以大规模并行下载,但节省的时间可能会浪费在您编写和测试这样的程序所花费的时间上。
另一种选择是使用 aws s3 sync 下载到 Amazon EC2 实例,然后压缩文件并简单地下载压缩文件。这将减少带宽需求。