mirror of
https://github.com/saveweb/biliarchiver.git
synced 2024-09-19 11:05:28 -07:00
fix: handle upload failures and retry (#19)
* fix: handle upload failures and retry * chore: only retry if EOF or SSL error --------- Co-authored-by: yzqzss <30341059+yzqzss@users.noreply.github.com>
This commit is contained in:
parent
7b2300d320
commit
7e55bb3298
@ -232,16 +232,30 @@ def _upload_bvid(
|
||||
print(md)
|
||||
|
||||
if filedict:
|
||||
r = item.upload(
|
||||
files=filedict,
|
||||
metadata=md,
|
||||
access_key=access_key,
|
||||
secret_key=secret_key,
|
||||
verbose=True,
|
||||
queue_derive=True,
|
||||
retries=5,
|
||||
)
|
||||
|
||||
upload_retry = 5
|
||||
while upload_retry >= 0:
|
||||
try:
|
||||
r = item.upload(
|
||||
files=filedict,
|
||||
metadata=md,
|
||||
access_key=access_key,
|
||||
secret_key=secret_key,
|
||||
verbose=True,
|
||||
queue_derive=True,
|
||||
retries=5,
|
||||
)
|
||||
break
|
||||
except Exception as e:
|
||||
if "EOF" in str(e) or "SSL" in str(e):
|
||||
upload_retry -= 1
|
||||
print(e)
|
||||
if upload_retry < 0:
|
||||
raise e
|
||||
print(f"Upload failed, retrying ({upload_retry}) ...")
|
||||
time.sleep(min(30 * (6 - upload_retry), 240))
|
||||
continue
|
||||
else:
|
||||
raise e
|
||||
tries = 100
|
||||
item = get_item(remote_identifier) # refresh item
|
||||
while not item.exists and tries > 0:
|
||||
|
Loading…
Reference in New Issue
Block a user