mirror of
https://github.com/acmesh-official/acme.sh.git
synced 2025-04-29 18:04:14 +00:00
Merge 21d9c2e9b6fb897aee4cd044f982a5b3fafa5886 into b0535d8b40a30f9fd2b26b3ea2a49469dcb4d0a8
This commit is contained in:
commit
3d36371f7d
@ -323,7 +323,6 @@ aws_rest() {
|
|||||||
_debug2 CredentialScope "$CredentialScope"
|
_debug2 CredentialScope "$CredentialScope"
|
||||||
|
|
||||||
StringToSign="$Algorithm\n$RequestDate\n$CredentialScope\n$HashedCanonicalRequest"
|
StringToSign="$Algorithm\n$RequestDate\n$CredentialScope\n$HashedCanonicalRequest"
|
||||||
|
|
||||||
_debug2 StringToSign "$StringToSign"
|
_debug2 StringToSign "$StringToSign"
|
||||||
|
|
||||||
kSecret="AWS4$AWS_SECRET_ACCESS_KEY"
|
kSecret="AWS4$AWS_SECRET_ACCESS_KEY"
|
||||||
@ -361,20 +360,45 @@ aws_rest() {
|
|||||||
url="$AWS_URL/$ep?$qsr"
|
url="$AWS_URL/$ep?$qsr"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$mtd" = "GET" ]; then
|
# Exponential backoff
|
||||||
response="$(_get "$url")"
|
max_retries=10
|
||||||
else
|
attempt=1
|
||||||
response="$(_post "$data" "$url")"
|
base_sleep=5
|
||||||
fi
|
|
||||||
|
|
||||||
_ret="$?"
|
while [ "$attempt" -le "$max_retries" ]; do
|
||||||
_debug2 response "$response"
|
if [ "$mtd" = "GET" ]; then
|
||||||
if [ "$_ret" = "0" ]; then
|
response="$(_get "$url")"
|
||||||
if _contains "$response" "<ErrorResponse"; then
|
else
|
||||||
_err "Response error:$response"
|
response="$(_post "$data" "$url")"
|
||||||
return 1
|
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
|
_ret="$?"
|
||||||
|
_debug2 response "$response"
|
||||||
|
|
||||||
|
if [ "$_ret" = "0" ]; then
|
||||||
|
if _contains "$response" "<ErrorResponse"; then
|
||||||
|
_err "Response error:$response"
|
||||||
|
if echo "$response" | grep -Eq "<Code>(Throttling|RequestThrottled|RateLimit)</Code>|<Message>Rate exceeded</Message>"; then
|
||||||
|
_err "AWS throttling encountered, attempt $attempt"
|
||||||
|
attempt=$(_math "$attempt" + 1)
|
||||||
|
if [ "$attempt" -le "$max_retries" ]; then
|
||||||
|
sleep_time=$(_math "$base_sleep" "*" 2 "^" "$((attempt - 1))")
|
||||||
|
_err "Sleeping $sleep_time seconds before retry..."
|
||||||
|
_sleep "$sleep_time"
|
||||||
|
continue
|
||||||
|
else
|
||||||
|
_err "Max retries ($max_retries) reached. Giving up."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
return "$_ret"
|
||||||
|
fi
|
||||||
|
break
|
||||||
|
done
|
||||||
|
|
||||||
return "$_ret"
|
return "$_ret"
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user