我尝试使用以下命令从AWS S3桶中获取大量文件:
aws s3 ls --human-readable --recursive my-directory这个目录包含数以万计的文件,因此,在长时间暂停之后,有时我会得到以下错误:
('The read operation timed out',)我尝试过使用不同值的参数--page-size,但是没有帮助。如何纠正此错误?
发布于 2019-02-09 18:10:51
您可以编写一个脚本来循环S3桶的同步,直到传输完成为止。脚本看起来应该是:
while:
do
aws s3 sync s3://bucket/path-to-files
done如果文件传输失败,并且基本上一次又一次地继续下载,直到传输完成为止,这将重新尝试。
发布于 2019-08-01 22:53:29
看来aws cli有很多改进。现在,当我使用17000+和s3中的文件运行cmd时,只需不到30秒,如下所示:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1372 100 1318 100 54 2404 98 --:--:-- --:--:-- --:--:-- 2409
17579发布于 2017-10-03 00:38:45
在分布式系统中读取大量数据是不明智的。它是服务器上的一个块,对客户端也是如此。
如果您有数据存储方式的模式,请尝试并行运行这些数据,然后将其附加到单个文件中。
例如,
aws s3 ls S3://桶/年份/月份--递归
希望能帮上忙。
https://stackoverflow.com/questions/38301599
复制相似问题