diff --git a/util/oss.py b/util/oss.py index 140dba1..e41f6d1 100644 --- a/util/oss.py +++ b/util/oss.py @@ -13,13 +13,22 @@ def upload_to_oss(url, file_path): :param str file_path: 文件路径 :return bool: 是否成功 """ - with open(file_path, 'rb') as f: + max_retries = 5 + retries = 0 + while retries < max_retries: try: - response = requests.put(url, data=f) - return response.status_code == 200 + with open(file_path, 'rb') as f: + response = requests.put(url, data=f, timeout=60) # 设置超时时间为1分钟 + if response.status_code == 200: + return True + except requests.exceptions.Timeout: + retries += 1 + logger.warning(f"Upload timed out. Retrying {retries}/{max_retries}...") except Exception as e: - print(e) - return False + logger.warning(f"Upload failed. Retrying {retries}/{max_retries}...") + retries += 1 + return False + def download_from_oss(url, file_path): """ @@ -33,11 +42,18 @@ def download_from_oss(url, file_path): if file_dir: if not os.path.exists(file_dir): os.makedirs(file_dir) - try: - response = requests.get(url) - with open(file_path, 'wb') as f: - f.write(response.content) - return True - except Exception as e: - print(e) - return False + max_retries = 5 + retries = 0 + while retries < max_retries: + try: + response = requests.get(url, timeout=15) # 设置超时时间 + with open(file_path, 'wb') as f: + f.write(response.content) + return True + except requests.exceptions.Timeout: + retries += 1 + logger.warning(f"Download timed out. Retrying {retries}/{max_retries}...") + except Exception as e: + logger.warning(f"Download failed. Retrying {retries}/{max_retries}...") + retries += 1 + return False