aws s3 ls读取操作超时

时间:2016-07-11 07:42:59

标签: amazon-s3

我尝试使用此命令从AWS S3存储桶中获取大量文件:

aws s3 ls --human-readable --recursive my-directory

此目录包含数万个文件,因此有时,经过长时间暂停后,我收到此错误:

('The read operation timed out',)

我已尝试使用不同值的参数--page-size,但它没有帮助。我该如何解决这个错误?

3 个答案:

答案 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

希望它有所帮助。