From 861453c1a8d4c6787a2d00f98a91b8fe68a2d016 Mon Sep 17 00:00:00 2001 From: DDSRem <73049927+DDSRem@users.noreply.github.com> Date: Sun, 18 May 2025 10:03:36 +0800 Subject: [PATCH] fix(u115): refresh delay --- app/modules/filemanager/storages/u115.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/app/modules/filemanager/storages/u115.py b/app/modules/filemanager/storages/u115.py index 08a24aac..0e53e92e 100644 --- a/app/modules/filemanager/storages/u115.py +++ b/app/modules/filemanager/storages/u115.py @@ -306,6 +306,17 @@ class U115Pan(StorageBase, metaclass=Singleton): sha1.update(chunk) return sha1.hexdigest() + def _delay_get_item(self, path: Path) -> List[schemas.FileItem]: + """ + 自动延迟重试 get_item 模块 + """ + for _ in range(2): + time.sleep(2) + fileitem = self.get_item(path) + if fileitem: + return fileitem + return None + def init_storage(self): pass @@ -513,7 +524,7 @@ class U115Pan(StorageBase, metaclass=Singleton): # Step 3: 秒传 if init_result.get("status") == 2: logger.info(f"【115】{target_name} 秒传成功") - return self.get_item(target_path) + return self._delay_get_item(target_path) # Step 4: 获取上传凭证 token_resp = self._request_api( @@ -618,7 +629,7 @@ class U115Pan(StorageBase, metaclass=Singleton): logger.error(f"【115】{target_name} 上传失败: {e.status}, 错误码: {e.code}, 详情: {e.message}") return None # 返回结果 - return self.get_item(target_path) + return self._delay_get_item(target_path) def download(self, fileitem: schemas.FileItem, path: Path = None) -> Optional[Path]: """ @@ -783,7 +794,7 @@ class U115Pan(StorageBase, metaclass=Singleton): return False if resp["state"]: new_path = Path(path) / fileitem.name - new_item = self.get_item(new_path) + new_item = self._delay_get_item(new_path) self.rename(new_item, new_name) # 更新缓存 del self._id_cache[fileitem.path] @@ -811,7 +822,7 @@ class U115Pan(StorageBase, metaclass=Singleton): return False if resp["state"]: new_path = Path(path) / fileitem.name - new_file = self.get_item(new_path) + new_file = self._delay_get_item(new_path) self.rename(new_file, new_name) # 更新缓存 del self._id_cache[fileitem.path]