From 075afdbb778893ab6d1b392a05c7554cc069c99e Mon Sep 17 00:00:00 2001 From: jxxghp Date: Sat, 29 Mar 2025 15:39:29 +0800 Subject: [PATCH] fix alipan upload --- app/modules/filemanager/storages/alipan.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/app/modules/filemanager/storages/alipan.py b/app/modules/filemanager/storages/alipan.py index 71b9052b..e9b3b610 100644 --- a/app/modules/filemanager/storages/alipan.py +++ b/app/modules/filemanager/storages/alipan.py @@ -506,7 +506,7 @@ class AliPan(StorageBase, metaclass=Singleton): return sha1.hexdigest() def _create_file(self, drive_id: str, parent_file_id: str, - file_name: str, file_path: Path, check_name_mode="ignore", + file_name: str, file_path: Path, check_name_mode="refuse", chunk_size: int = 1 * 1024 * 1024 * 1024): """ 创建文件请求,尝试秒传 @@ -586,11 +586,7 @@ class AliPan(StorageBase, metaclass=Singleton): """ 上传单个分片 """ - headers = { - 'Content-Length': str(len(data)), - 'Content-Type': 'application/octet-stream' - } - return requests.put(upload_url, data=data, headers=headers) + return requests.put(upload_url, data=data) def _list_uploaded_parts(self, drive_id: str, file_id: str, upload_id: str) -> dict: """ @@ -650,6 +646,10 @@ class AliPan(StorageBase, metaclass=Singleton): logger.info(f"【阿里云盘】{target_name} 秒传完成!") return self.get_item(target_path) + if create_res.get("exist", False): + logger.info(f"【阿里云盘】{target_name} 已存在") + return self.get_item(target_path) + # 2. 准备分片上传参数 file_id = create_res.get('file_id') if not file_id: @@ -755,7 +755,7 @@ class AliPan(StorageBase, metaclass=Singleton): return None download_url = download_info.get("url") local_path = path or settings.TEMP_PATH / fileitem.name - with self.session.get(download_url, stream=True) as r: + with requests.get(download_url, stream=True) as r: r.raise_for_status() with open(local_path, "wb") as f: for chunk in r.iter_content(chunk_size=8192):