From e896068bc552f2fb06b1d155b7647143dba01a08 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Sun, 23 Jun 2024 18:48:13 +0800 Subject: [PATCH] fix #2400 --- app/api/endpoints/aliyun.py | 11 ++++++----- app/helper/aliyun.py | 12 ++++++------ 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/app/api/endpoints/aliyun.py b/app/api/endpoints/aliyun.py index cb8ba05c..3354a31d 100644 --- a/app/api/endpoints/aliyun.py +++ b/app/api/endpoints/aliyun.py @@ -73,7 +73,7 @@ def list_aliyun(fileitem: schemas.FileItem, if sort == "time": sort = "updated_at" if fileitem.type == "file": - fileitem = AliyunHelper().detail(fileitem.fileid, path=path) + fileitem = AliyunHelper().detail(drive_id=fileitem.drive_id, file_id=fileitem.fileid, path=path) if fileitem: return [fileitem] return [] @@ -115,13 +115,14 @@ def delete_aliyun(fileitem: schemas.FileItem, @router.get("/download", summary="下载文件(阿里云盘)") def download_aliyun(fileid: str, + drive_id: str = None, _: schemas.TokenPayload = Depends(verify_uri_token)) -> Any: """ 下载文件或目录 """ if not fileid: return schemas.Response(success=False) - url = AliyunHelper().download(fileid) + url = AliyunHelper().download(drive_id=drive_id, file_id=fileid) if url: # 重定向 return Response(status_code=302, headers={"Location": url}) @@ -138,7 +139,7 @@ def rename_aliyun(fileitem: schemas.FileItem, """ if not fileitem.fileid or not new_name: return schemas.Response(success=False) - result = AliyunHelper().rename(fileitem.fileid, new_name) + result = AliyunHelper().rename(drive_id=fileitem.drive_id, file_id=fileitem.fileid, name=new_name) if result: if recursive: transferchain = TransferChain() @@ -184,13 +185,13 @@ def rename_aliyun(fileitem: schemas.FileItem, @router.get("/image", summary="读取图片(阿里云盘)", response_model=schemas.Response) -def image_aliyun(fileid: str, _: schemas.TokenPayload = Depends(verify_uri_token)) -> Any: +def image_aliyun(fileid: str, drive_id: str = None, _: schemas.TokenPayload = Depends(verify_uri_token)) -> Any: """ 读取图片 """ if not fileid: return schemas.Response(success=False) - url = AliyunHelper().download(fileid) + url = AliyunHelper().download(drive_id=drive_id, file_id=fileid) if url: # 重定向 return Response(status_code=302, headers={"Location": url}) diff --git a/app/helper/aliyun.py b/app/helper/aliyun.py index a2187669..190e46d5 100644 --- a/app/helper/aliyun.py +++ b/app/helper/aliyun.py @@ -456,7 +456,7 @@ class AliyunHelper: self.__handle_error(res, "删除文件") return False - def detail(self, file_id: str, path: str = "/") -> Optional[schemas.FileItem]: + def detail(self, drive_id: str, file_id: str, path: str = "/") -> Optional[schemas.FileItem]: """ 获取文件详情 """ @@ -465,7 +465,7 @@ class AliyunHelper: return None headers = self.__get_headers(params) res = RequestUtils(headers=headers, timeout=10).post_res(self.file_detail_url, json={ - "drive_id": params.get("resourceDriveId"), + "drive_id": drive_id, "file_id": file_id }) if res: @@ -486,7 +486,7 @@ class AliyunHelper: self.__handle_error(res, "获取文件详情") return None - def rename(self, file_id: str, name: str) -> bool: + def rename(self, drive_id: str, file_id: str, name: str) -> bool: """ 重命名文件 """ @@ -495,7 +495,7 @@ class AliyunHelper: return False headers = self.__get_headers(params) res = RequestUtils(headers=headers, timeout=10).post_res(self.rename_file_url, json={ - "drive_id": params.get("resourceDriveId"), + "drive_id": drive_id, "file_id": file_id, "name": name, "check_name_mode": "refuse" @@ -506,7 +506,7 @@ class AliyunHelper: self.__handle_error(res, "重命名文件") return False - def download(self, file_id: str) -> Optional[str]: + def download(self, drive_id: str, file_id: str) -> Optional[str]: """ 获取下载链接 """ @@ -515,7 +515,7 @@ class AliyunHelper: return None headers = self.__get_headers(params) res = RequestUtils(headers=headers, timeout=10).post_res(self.download_url, json={ - "drive_id": params.get("resourceDriveId"), + "drive_id": drive_id, "file_id": file_id }) if res: