fix rclone && alipan

This commit is contained in:
jxxghp
2024-10-19 12:29:45 +08:00
parent 6f299b3255
commit 1c2a194a7d
3 changed files with 18 additions and 6 deletions
+3 -3
View File
@@ -56,9 +56,9 @@ def save(name: str,
@router.post("/list", summary="所有目录和文件", response_model=List[schemas.FileItem]) @router.post("/list", summary="所有目录和文件", response_model=List[schemas.FileItem])
def list(fileitem: schemas.FileItem, def list_files(fileitem: schemas.FileItem,
sort: str = 'updated_at', sort: str = 'updated_at',
_: User = Depends(get_current_active_superuser)) -> Any: _: User = Depends(get_current_active_superuser)) -> Any:
""" """
查询当前目录下所有目录和文件 查询当前目录下所有目录和文件
:param fileitem: 文件项 :param fileitem: 文件项
+14 -2
View File
@@ -159,6 +159,7 @@ class AliPan(StorageBase):
"updateTime": time.time(), "updateTime": time.time(),
}) })
self.__update_params(data) self.__update_params(data)
self.__update_drives()
self.__init_aligo() self.__init_aligo()
except Exception as e: except Exception as e:
return {}, f"bizExt 解码失败:{str(e)}" return {}, f"bizExt 解码失败:{str(e)}"
@@ -181,6 +182,17 @@ class AliPan(StorageBase):
""" """
return self.aligo.get_user() 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: def __get_fileitem(self, fileinfo: BaseFile, parent: str = "/") -> schemas.FileItem:
""" """
获取文件信息 获取文件信息
@@ -231,7 +243,7 @@ class AliPan(StorageBase):
return [ return [
schemas.FileItem( schemas.FileItem(
storage=self.schema.value, storage=self.schema.value,
fileid=fileitem.fileid, fileid="root",
drive_id=self.__auth_params.get("resourceDriveId"), drive_id=self.__auth_params.get("resourceDriveId"),
parent_fileid="root", parent_fileid="root",
type="dir", type="dir",
@@ -241,7 +253,7 @@ class AliPan(StorageBase):
), ),
schemas.FileItem( schemas.FileItem(
storage=self.schema.value, storage=self.schema.value,
fileid=fileitem.fileid, fileid="root",
drive_id=self.__auth_params.get("backDriveId"), drive_id=self.__auth_params.get("backDriveId"),
parent_fileid="root", parent_fileid="root",
type="dir", type="dir",
+1 -1
View File
@@ -335,7 +335,7 @@ class Rclone(StorageBase):
ret = subprocess.run( ret = subprocess.run(
[ [
'rclone', 'about', 'rclone', 'about',
'MP:/', '--json' '/', '--json'
], ],
capture_output=True, capture_output=True,
startupinfo=self.__get_hidden_shell() startupinfo=self.__get_hidden_shell()