我有一个jenkins工作,它上传一个非常小的bash文件(小于1MB)到s3存储桶。它在大多数情况下都可以工作,但偶尔会失败,出现以下错误:
upload failed: build/xxxxxxx/test.sh The read operation timed out上述错误直接来自aws cli操作。我在想,这可能是某个网络问题,也可能是此时磁盘读取操作不可用。如果发生这种情况,如何设置重试选项?另外,是否可以增加超时时间?我搜索了cli文档,谷歌了一下,并检出了'aws s3api‘,但没有看到任何这样的选项。
如果这样的选项不能exist.Then,人们该如何解决这个问题呢?是否包装命令以检查错误代码并重试?
发布于 2018-06-25 22:39:45
最后在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
}https://stackoverflow.com/questions/50587170
复制相似问题