1111from volcengine .util .Util import *
1212from volcengine .Policy import *
1313from volcengine .imagex .ImageXConfig import *
14- from retry import retry
14+ from tenacity import retry , stop_after_attempt , wait_exponential
1515
1616
1717class Uploader :
@@ -75,7 +75,7 @@ def async_upload(self):
7575 'Error' : e ,
7676 })
7777
78- @retry (tries = 3 , delay = 1 , backoff = 2 )
78+ @retry (stop = stop_after_attempt ( 3 ), wait = wait_exponential ( multiplier = 1 , min = 1 ), reraise = True )
7979 def upload_by_host (self , store_info , img_data ):
8080 url = 'https://{}/{}' .format (self .host , store_info ['StoreUri' ])
8181 check_sum = crc32 (img_data ) & 0xFFFFFFFF
@@ -104,7 +104,7 @@ def chunk_upload(self, store_info, f, size, is_large_file):
104104 parts .append (part )
105105 return self .upload_merge_part (store_info , upload_id , parts , is_large_file )
106106
107- @retry (tries = 3 , delay = 1 , backoff = 2 )
107+ @retry (stop = stop_after_attempt ( 3 ), wait = wait_exponential ( multiplier = 1 , min = 1 ), reraise = True )
108108 def init_upload_part (self , store_info , is_large_file ):
109109 url = 'https://{}/{}?uploads' .format (self .host , store_info ['StoreUri' ])
110110 headers = {'Authorization' : store_info ['Auth' ]}
@@ -118,7 +118,7 @@ def init_upload_part(self, store_info, is_large_file):
118118 raise Exception ("init upload error" )
119119 return resp ['payload' ]['uploadID' ]
120120
121- @retry (tries = 3 , delay = 1 , backoff = 2 )
121+ @retry (stop = stop_after_attempt ( 3 ), wait = wait_exponential ( multiplier = 1 , min = 1 ), reraise = True )
122122 def upload_part (self , store_info , upload_id , part_number , data , is_large_file ):
123123 url = 'https://{}/{}?partNumber={}&uploadID={}' .format (self .host , store_info ['StoreUri' ], part_number ,
124124 upload_id )
@@ -146,7 +146,7 @@ def generate_merge_body(check_sum_list):
146146 comma = ','
147147 return comma .join (s )
148148
149- @retry (tries = 3 , delay = 1 , backoff = 2 )
149+ @retry (stop = stop_after_attempt ( 3 ), wait = wait_exponential ( multiplier = 1 , min = 1 ), reraise = True )
150150 def upload_merge_part (self , store_info , upload_id , check_sum_list , is_large_file ):
151151 url = 'https://{}/{}?uploadID={}' .format (self .host , store_info ['StoreUri' ], upload_id )
152152 data = self .generate_merge_body (check_sum_list )
0 commit comments