基本上,我需要控制将文件上传到 AWS S3 的速度——我有一个包含数万个文件的文件夹,这是我现在所做的:
for f in *; do aws s3 cp $f s3://my-bucket; done;
我想要做的就像这样的伪代码:
for f in *;
cnt=0
do aws s3 cp $f s3://my-bucket
if cnt % 1000 == 0
sleep 5 min
done;
抱歉,我把 python 和 shell 语法混在一起了,但我希望我表达清楚了我的想法。请帮忙。谢谢!
答案1
这也许能实现你想要的效果。
#!/usr/bin/env bash
counter=1
for f in *; do
echo aws s3 cp "$f" s3://my-bucket
((counter++ % 10 == 0)) && echo && sleep 5
done
这只是应该/可以执行的操作的一次演练。
如果您认为输出没有问题,请删除
echo
前面的aws
和。&& echo