Viv*_*vek 5 amazon-s3 amazon-web-services aws-cli
我有一个 jenkins 工作,它将一个非常小的 bash 文件(小于 <1mb)上传到 s3 存储桶。它大部分时间都可以工作,但偶尔会失败并出现以下错误:
upload failed: build/xxxxxxx/test.sh The read operation timed out
Run Code Online (Sandbox Code Playgroud)
以上错误直接来自aws cli操作。我在想,这可能是一些网络问题,或者当时磁盘读取操作不可用。如果发生这种情况,如何设置重试选项?另外,我可以增加超时吗?我搜索了 cli 文档,用谷歌搜索,并查看了“aws s3api”,但没有看到任何这样的选项。
如果这样的选项不存在。那么,人们如何解决这个问题?包装命令检查错误代码并重新尝试?
最终围绕 s3 命令编写包装器以重试并在最后一次尝试时获取调试堆栈。可能会帮助人们。
# Purpose: Allow retry while uploading files to s3 bucket
# Params:
# \$1 : local file to copy to s3
# \$2 : s3 bucket path
# \$3 : AWS bucket region
#
function upload_to_s3 {
n=0
until [ \$n -gt 2 ]
do
if [ \$n -eq 2 ]; then
aws s3 cp --debug \$1 \$2 --region \$3
return \$?
else
aws s3 cp \$1 \$2 --region \$3 && break
fi
n=\$[\$n+1]
sleep 30
done
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2229 次 |
| 最近记录: |