feat:阿里云盘支持备份盘
This commit is contained in:
@ -87,10 +87,11 @@ def list_aliyun(fileitem: schemas.FileItem,
|
|||||||
size=fileinfo.get("size"),
|
size=fileinfo.get("size"),
|
||||||
extension=fileinfo.get("file_extension"),
|
extension=fileinfo.get("file_extension"),
|
||||||
modify_time=StringUtils.str_to_timestamp(fileinfo.get("updated_at")),
|
modify_time=StringUtils.str_to_timestamp(fileinfo.get("updated_at")),
|
||||||
thumbnail=fileinfo.get("thumbnail")
|
thumbnail=fileinfo.get("thumbnail"),
|
||||||
|
drive_id=fileinfo.get("drive_id"),
|
||||||
)]
|
)]
|
||||||
return []
|
return []
|
||||||
items = AliyunHelper().list_files(parent_file_id=fileitem.fileid, order_by=sort)
|
items = AliyunHelper().list_files(drive_id=fileitem.drive_id, parent_file_id=fileitem.fileid, order_by=sort)
|
||||||
if not items:
|
if not items:
|
||||||
return []
|
return []
|
||||||
return [schemas.FileItem(
|
return [schemas.FileItem(
|
||||||
@ -102,7 +103,8 @@ def list_aliyun(fileitem: schemas.FileItem,
|
|||||||
size=item.get("size"),
|
size=item.get("size"),
|
||||||
extension=item.get("file_extension"),
|
extension=item.get("file_extension"),
|
||||||
modify_time=StringUtils.str_to_timestamp(item.get("updated_at")),
|
modify_time=StringUtils.str_to_timestamp(item.get("updated_at")),
|
||||||
thumbnail=item.get("thumbnail")
|
thumbnail=item.get("thumbnail"),
|
||||||
|
drive_id=item.get("drive_id"),
|
||||||
) for item in items]
|
) for item in items]
|
||||||
|
|
||||||
|
|
||||||
|
@ -304,7 +304,7 @@ class AliyunHelper:
|
|||||||
self.__handle_error(res, "获取用户信息")
|
self.__handle_error(res, "获取用户信息")
|
||||||
return {}
|
return {}
|
||||||
|
|
||||||
def list_files(self, parent_file_id: str = 'root', list_type: str = None,
|
def list_files(self, drive_id: str = None, parent_file_id: str = 'root', list_type: str = None,
|
||||||
limit: int = 100, order_by: str = 'updated_at') -> List[dict]:
|
limit: int = 100, order_by: str = 'updated_at') -> List[dict]:
|
||||||
"""
|
"""
|
||||||
浏览文件
|
浏览文件
|
||||||
@ -316,17 +316,36 @@ class AliyunHelper:
|
|||||||
params = self.get_access_params()
|
params = self.get_access_params()
|
||||||
if not params:
|
if not params:
|
||||||
return []
|
return []
|
||||||
# 最终返回数据
|
|
||||||
ret_items = []
|
|
||||||
# 请求头
|
# 请求头
|
||||||
headers = self.get_headers(params)
|
headers = self.get_headers(params)
|
||||||
|
# 根目录处理
|
||||||
|
if not drive_id:
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
"file_id": parent_file_id,
|
||||||
|
"drive_id": params.get("resourceDriveId"),
|
||||||
|
"parent_file_id": "root",
|
||||||
|
"type": "folder",
|
||||||
|
"path": "/资源库/",
|
||||||
|
"name": "资源库",
|
||||||
|
}, {
|
||||||
|
"file_id": parent_file_id,
|
||||||
|
"drive_id": params.get("backDriveId"),
|
||||||
|
"parent_file_id": "root",
|
||||||
|
"type": "folder",
|
||||||
|
"path": "/备份盘/",
|
||||||
|
"name": "备份盘",
|
||||||
|
}
|
||||||
|
]
|
||||||
|
# 返回数据
|
||||||
|
ret_items = []
|
||||||
# 分页获取
|
# 分页获取
|
||||||
next_marker = None
|
next_marker = None
|
||||||
while True:
|
while True:
|
||||||
if not parent_file_id or parent_file_id == "/":
|
if not parent_file_id or parent_file_id == "/":
|
||||||
parent_file_id = "root"
|
parent_file_id = "root"
|
||||||
res = RequestUtils(headers=headers, timeout=10).post_res(self.list_file_url, json={
|
res = RequestUtils(headers=headers, timeout=10).post_res(self.list_file_url, json={
|
||||||
"drive_id": params.get("resourceDriveId"),
|
"drive_id": drive_id,
|
||||||
"type": list_type,
|
"type": list_type,
|
||||||
"limit": limit,
|
"limit": limit,
|
||||||
"order_by": order_by,
|
"order_by": order_by,
|
||||||
|
@ -28,3 +28,5 @@ class FileItem(BaseModel):
|
|||||||
thumbnail: Optional[str] = None
|
thumbnail: Optional[str] = None
|
||||||
# 115 pickcode
|
# 115 pickcode
|
||||||
pickcode: Optional[str] = None
|
pickcode: Optional[str] = None
|
||||||
|
# drive_id
|
||||||
|
drive_id: Optional[str] = None
|
||||||
|
Reference in New Issue
Block a user