@@ -203,6 +203,7 @@ def criar_pasta(self, pasta_pai: Folder | str, nome_pasta: str):
203
203
pasta .execute_query ()
204
204
return pasta
205
205
206
+ @handle_sharepoint_errors ()
206
207
def baixar_arquivo (self , arquivo_sp : File | str , caminho_download : str , max_tentativas : int = 3 ):
207
208
"""
208
209
Baixa um arquivo do SharePoint para um caminho local, com verificação de integridade e novas tentativas.
@@ -222,24 +223,20 @@ def baixar_arquivo(self, arquivo_sp: File | str, caminho_download: str, max_tent
222
223
for tentativa in range (max_tentativas ):
223
224
print (f"Iniciando download de '{ file_to_download .name } ' (Tentativa { tentativa + 1 } /{ max_tentativas } )..." )
224
225
225
- try :
226
- with open (caminho_download , "wb" ) as local_file :
227
- file_to_download .download_session (local_file ).execute_query ()
228
-
229
- # Verificação do tamanho do arquivo
230
- tamanho_local = os .path .getsize (caminho_download )
226
+ with open (caminho_download , "wb" ) as local_file :
227
+ file_to_download .download (local_file ).execute_query ()
231
228
232
- if tamanho_local == tamanho_remoto :
233
- print (
234
- f"Download de '{ file_to_download .name } ' concluído e verificado com sucesso. Tamanho: { tamanho_local } bytes." )
235
- return # Sucesso, sai da função
236
- else :
237
- print (f"Falha na verificação de tamanho para '{ file_to_download .name } '." )
238
- print (f" -> Tamanho esperado: { tamanho_remoto } bytes" )
239
- print (f" -> Tamanho baixado: { tamanho_local } bytes" )
229
+ # Verificação do tamanho do arquivo
230
+ tamanho_local = os .path .getsize (caminho_download )
240
231
241
- except Exception as e :
242
- print (f"Ocorreu um erro durante o download na tentativa { tentativa + 1 } /{ max_tentativas } : { e } " )
232
+ if tamanho_local == tamanho_remoto :
233
+ print (
234
+ f"Download de '{ file_to_download .name } ' concluído e verificado com sucesso. Tamanho: { tamanho_local } bytes." )
235
+ return # Sucesso, sai da função
236
+ else :
237
+ print (f"Falha na verificação de tamanho para '{ file_to_download .name } '." )
238
+ print (f" -> Tamanho esperado: { tamanho_remoto } bytes" )
239
+ print (f" -> Tamanho baixado: { tamanho_local } bytes" )
243
240
244
241
if tentativa < max_tentativas - 1 :
245
242
print ("Aguardando 5 segundos para tentar novamente..." )
0 commit comments