add alipan/115 move api

This commit is contained in:
jxxghp 2024-06-20 17:21:02 +08:00
parent ef0cd7d5c5
commit 8df2955a67
2 changed files with 61 additions and 16 deletions

View File

@ -49,6 +49,8 @@ class AliyunHelper:
rename_file_url = "https://api.aliyundrive.com/v3/file/update" rename_file_url = "https://api.aliyundrive.com/v3/file/update"
# 获取下载链接 # 获取下载链接
download_url = "https://api.aliyundrive.com/v2/file/get_download_url" download_url = "https://api.aliyundrive.com/v2/file/get_download_url"
# 移动文件
move_file_url = "https://api.aliyundrive.com/v3/file/move"
def __init__(self): def __init__(self):
self.systemconfig = SystemConfigOper() self.systemconfig = SystemConfigOper()
@ -373,13 +375,13 @@ class AliyunHelper:
break break
return ret_items return ret_items
def create_folder(self, parent_file_id: str, name: str) -> bool: def create_folder(self, parent_file_id: str, name: str) -> Optional[dict]:
""" """
创建目录 创建目录
""" """
params = self.get_access_params() params = self.get_access_params()
if not params: if not params:
return False return None
headers = self.get_headers(params) headers = self.get_headers(params)
res = RequestUtils(headers=headers, timeout=10).post_res(self.create_folder_url, json={ res = RequestUtils(headers=headers, timeout=10).post_res(self.create_folder_url, json={
"drive_id": params.get("resourceDriveId"), "drive_id": params.get("resourceDriveId"),
@ -389,10 +391,28 @@ class AliyunHelper:
"type": "folder" "type": "folder"
}) })
if res: if res:
return True """
{
"parent_file_id": "root",
"type": "folder",
"file_id": "6673f2c8a88344741bd64ad192d7512b92087719",
"domain_id": "bj29",
"drive_id": "39146740",
"file_name": "test",
"encrypt_mode": "none"
}
"""
result = res.json()
return {
"file_id": result.get("file_id"),
"drive_id": result.get("drive_id"),
"parent_file_id": result.get("parent_file_id"),
"type": result.get("type"),
"name": result.get("file_name")
}
else: else:
self.__handle_error(res, "创建目录") self.__handle_error(res, "创建目录")
return False return None
def delete_file(self, file_id: str) -> bool: def delete_file(self, file_id: str) -> bool:
""" """
@ -467,3 +487,23 @@ class AliyunHelper:
else: else:
self.__handle_error(res, "获取下载链接") self.__handle_error(res, "获取下载链接")
return None return None
def move(self, drive_id: str, file_id: str, target_id: str) -> bool:
"""
移动文件
"""
params = self.get_access_params()
if not params:
return False
headers = self.get_headers(params)
res = RequestUtils(headers=headers, timeout=10).post_res(self.move_file_url, json={
"drive_id": drive_id,
"file_id": file_id,
"to_parent_file_id": target_id,
"check_name_mode": "refuse"
})
if res:
return True
else:
self.__handle_error(res, "移动文件")
return False

View File

@ -9,7 +9,6 @@ from app.db.systemconfig_oper import SystemConfigOper
from app.log import logger from app.log import logger
from app.schemas.types import SystemConfigKey from app.schemas.types import SystemConfigKey
from app.utils.singleton import Singleton from app.utils.singleton import Singleton
from app.utils.system import SystemUtils
class U115Helper(metaclass=Singleton): class U115Helper(metaclass=Singleton):
@ -136,18 +135,17 @@ class U115Helper(metaclass=Singleton):
logger.error(f"浏览115文件失败{str(e)}") logger.error(f"浏览115文件失败{str(e)}")
return None return None
def create_folder(self, parent_file_id: str, name: str) -> bool: def create_folder(self, parent_file_id: str, name: str) -> Optional[File]:
""" """
创建目录 创建目录
""" """
if not self.__init_cloud(): if not self.__init_cloud():
return False return None
try: try:
self.cloud.storage().make_dir(parent_file_id, name) return self.cloud.storage().make_dir(parent_file_id, name)
return True
except Exception as e: except Exception as e:
logger.error(f"创建115目录失败{str(e)}") logger.error(f"创建115目录失败{str(e)}")
return False return None
def delete_file(self, file_id: str) -> bool: def delete_file(self, file_id: str) -> bool:
""" """
@ -162,12 +160,6 @@ class U115Helper(metaclass=Singleton):
logger.error(f"删除115文件失败{str(e)}") logger.error(f"删除115文件失败{str(e)}")
return False return False
def get_file_detail(self, file_id: str) -> Optional[dict]:
"""
获取文件详情
"""
pass
def rename_file(self, file_id: str, name: str) -> bool: def rename_file(self, file_id: str, name: str) -> bool:
""" """
重命名文件 重命名文件
@ -204,3 +196,16 @@ class U115Helper(metaclass=Singleton):
except Exception as e: except Exception as e:
logger.error(f"获取115存储空间失败{str(e)}") logger.error(f"获取115存储空间失败{str(e)}")
return None return None
def move(self, file_id: str, target_id: str) -> bool:
"""
移动文件
"""
if not self.__init_cloud():
return False
try:
self.cloud.storage().move(file_id, target_id)
return True
except Exception as e:
logger.error(f"移动115文件失败{str(e)}")
return False