我在S3存储桶上的不同文件夹中有数百万个文件。
文件非常小。我希望下载名为VER1
的文件夹下的所有文件。文件夹VER1
包含许多子文件夹,我希望下载VER1
所有子文件夹下的所有百万文件。
(例如VER1
-> sub1
-> file1.txt
,VER1
-> sub1
- > subsub1
- > file2.text
等)
下载所有文件的最快方法是什么?
使用s3 cp
? s3 sync
?
有没有办法并行下载该文件夹下的所有文件?
使用AWS Command-Line Interface (CLI):
aws s3 sync s3://bucket/VER1 [name-of-local-directory]
根据我的经验,它将并行下载,但不一定会使用全带宽,因为每个对象都有很多开销。 (对于大型对象来说效率更高,因为开销更少。)
aws s3 sync
可能存在大量文件问题。你必须尝试看它是否有效。
如果你真的想要完整的性能,你可以编写自己的代码,以大量的并行方式下载,但是在你编写和测试这样一个程序的时候可能会节省时间。
另一种选择是使用aws s3 sync
下载到Amazon EC2实例,然后压缩文件并简单地下载zip文件。这将减少带宽需求。