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"
# 获取下载链接
download_url = "https://api.aliyundrive.com/v2/file/get_download_url"
# 移动文件
move_file_url = "https://api.aliyundrive.com/v3/file/move"
def __init__(self):
self.systemconfig = SystemConfigOper()
@ -373,13 +375,13 @@ class AliyunHelper:
break
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()
if not params:
return False
return None
headers = self.get_headers(params)
res = RequestUtils(headers=headers, timeout=10).post_res(self.create_folder_url, json={
"drive_id": params.get("resourceDriveId"),
@ -389,10 +391,28 @@ class AliyunHelper:
"type": "folder"
})
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:
self.__handle_error(res, "创建目录")
return False
return None
def delete_file(self, file_id: str) -> bool:
"""
@ -467,3 +487,23 @@ class AliyunHelper:
else:
self.__handle_error(res, "获取下载链接")
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.schemas.types import SystemConfigKey
from app.utils.singleton import Singleton
from app.utils.system import SystemUtils
class U115Helper(metaclass=Singleton):
@ -136,18 +135,17 @@ class U115Helper(metaclass=Singleton):
logger.error(f"浏览115文件失败{str(e)}")
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():
return False
return None
try:
self.cloud.storage().make_dir(parent_file_id, name)
return True
return self.cloud.storage().make_dir(parent_file_id, name)
except Exception as e:
logger.error(f"创建115目录失败{str(e)}")
return False
return None
def delete_file(self, file_id: str) -> bool:
"""
@ -162,12 +160,6 @@ class U115Helper(metaclass=Singleton):
logger.error(f"删除115文件失败{str(e)}")
return False
def get_file_detail(self, file_id: str) -> Optional[dict]:
"""
获取文件详情
"""
pass
def rename_file(self, file_id: str, name: str) -> bool:
"""
重命名文件
@ -204,3 +196,16 @@ class U115Helper(metaclass=Singleton):
except Exception as e:
logger.error(f"获取115存储空间失败{str(e)}")
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