我尝试使用此命令从AWS S3存储桶中获取大量文件:
aws s3 ls --human-readable --recursive my-directory
此目录包含数万个文件,因此有时,经过长时间暂停后,我收到此错误:
('The read operation timed out',)
我已尝试使用不同值的参数--page-size
,但它没有帮助。我该如何解决这个错误?
答案 0 :(得分:0)
您可以编写一个脚本来循环S3存储桶的同步,直到完成传输。该脚本如下所示:
while:
do
aws s3 sync s3://bucket/path-to-files
done
如果文件传输失败,它将重试,并且基本上一次又一次地恢复下载,直到传输完成。
答案 1 :(得分:0)
aws cli似乎有很多改进。现在,当我在s3中运行包含17000+个文件的cmd时,只用了不到30秒的时间,如下所示:
fetchWithInclude([key1,key2.subkey,key2.subkey2,etc]);
答案 2 :(得分:-1)
在分布式系统中读取大量数据是不明智的。它是服务器上的一个块,也是客户端的一个块。
如果您有关于数据存储方式的模式,请尝试并行运行它们,然后附加到单个文件中。
如,
aws s3 ls s3:// bucket / year / month --recursive
希望它有所帮助。