for i in `seq -f "%05g" 51 101`; do (aws s3 cp ${S3_DIR}part-${i}.gz . &); done
几分钟后,我检查了pgrep -f aws,发现有50个进程正在运行。此外,所有文件都已创建并开始下载(大文件,因此预计需要一段时间才能下载) 然而,最后,我只获得了一部分文件:
$ ls part-00051.gz part-00055.gz part-00058.gz part-00068.gz part-00070.gz part-00074.gz part-00078.gz part-00081.gz part-00087.gz part-00091.gz part-00097.gz part-00099.gz part-00101.gz part-00054.gz part-00056.gz part-00066.gz part-00069.gz part-00071.gz part-00075.gz part-00080.gz part-00084.gz part-00089.gz part-00096.gz part-00098.gz part-00100.gz
其余的在哪里?
我没有看到任何错误,但我看到了这些成功完成的文件(这些是上面ls输出中显示的文件):
download: s3://my/path/part-00075.gz to ./part-00075.gz
答案 0 :(得分:2)
如果要将许多对象复制到S3或从S3复制,可以尝试使用--recursive
选项指示aws-cli复制多个对象:
aws s3 cp s3://bucket-name/ . --recursive --exclude "*" --include "part-*.gz"