diff --git a/app/api/endpoints/storage.py b/app/api/endpoints/storage.py index 7396f772..07a19c16 100644 --- a/app/api/endpoints/storage.py +++ b/app/api/endpoints/storage.py @@ -56,9 +56,9 @@ def save(name: str, @router.post("/list", summary="所有目录和文件", response_model=List[schemas.FileItem]) -def list(fileitem: schemas.FileItem, - sort: str = 'updated_at', - _: User = Depends(get_current_active_superuser)) -> Any: +def list_files(fileitem: schemas.FileItem, + sort: str = 'updated_at', + _: User = Depends(get_current_active_superuser)) -> Any: """ 查询当前目录下所有目录和文件 :param fileitem: 文件项 diff --git a/app/modules/filemanager/storages/alipan.py b/app/modules/filemanager/storages/alipan.py index 62d2ee5f..236610f2 100644 --- a/app/modules/filemanager/storages/alipan.py +++ b/app/modules/filemanager/storages/alipan.py @@ -159,6 +159,7 @@ class AliPan(StorageBase): "updateTime": time.time(), }) self.__update_params(data) + self.__update_drives() self.__init_aligo() except Exception as e: return {}, f"bizExt 解码失败:{str(e)}" @@ -181,6 +182,17 @@ class AliPan(StorageBase): """ return self.aligo.get_user() + def __update_drives(self): + """ + 更新用户存储根目录 + """ + drivers = self.aligo.list_my_drives() + for driver in drivers: + if driver.category == "resource": + self.__update_params({"resourceDriveId": driver.drive_id}) + elif driver.category == "backup": + self.__update_params({"backDriveId": driver.drive_id}) + def __get_fileitem(self, fileinfo: BaseFile, parent: str = "/") -> schemas.FileItem: """ 获取文件信息 @@ -231,7 +243,7 @@ class AliPan(StorageBase): return [ schemas.FileItem( storage=self.schema.value, - fileid=fileitem.fileid, + fileid="root", drive_id=self.__auth_params.get("resourceDriveId"), parent_fileid="root", type="dir", @@ -241,7 +253,7 @@ class AliPan(StorageBase): ), schemas.FileItem( storage=self.schema.value, - fileid=fileitem.fileid, + fileid="root", drive_id=self.__auth_params.get("backDriveId"), parent_fileid="root", type="dir", diff --git a/app/modules/filemanager/storages/rclone.py b/app/modules/filemanager/storages/rclone.py index c9fc2fb2..f3fc9d4a 100644 --- a/app/modules/filemanager/storages/rclone.py +++ b/app/modules/filemanager/storages/rclone.py @@ -335,7 +335,7 @@ class Rclone(StorageBase): ret = subprocess.run( [ 'rclone', 'about', - 'MP:/', '--json' + '/', '--json' ], capture_output=True, startupinfo=self.__get_hidden_shell()