add aliyun apis

This commit is contained in:
jxxghp 2024-06-17 20:16:38 +08:00
parent 1b6a06bd7b
commit 9948db8bce
2 changed files with 34 additions and 18 deletions

View File

@ -262,54 +262,70 @@ def list_path(path: str,
@router.get("/aliyun/listdir", summary="所有目录(阿里云盘,不含文件)", response_model=List[schemas.FileItem]) @router.get("/aliyun/listdir", summary="所有目录(阿里云盘,不含文件)", response_model=List[schemas.FileItem])
def list_dir(path: str, _: schemas.TokenPayload = Depends(verify_token)) -> Any: def list_dir(path: str,
fileid: str,
_: schemas.TokenPayload = Depends(verify_token)) -> Any:
""" """
查询当前目录下所有目录 查询当前目录下所有目录
""" """
if not path: if not fileid:
return [] return []
if not path:
path = "/"
@router.get("/aliyun/mkdir", summary="创建目录(阿里云盘)", response_model=schemas.Response) @router.get("/aliyun/mkdir", summary="创建目录(阿里云盘)", response_model=schemas.Response)
def mkdir(path: str, _: schemas.TokenPayload = Depends(verify_token)) -> Any: def mkdir(path: str,
fileid: str,
_: schemas.TokenPayload = Depends(verify_token)) -> Any:
""" """
创建目录 创建目录
""" """
if not path: if not fileid:
return schemas.Response(success=False) return schemas.Response(success=False)
if not path:
path = "/"
@router.get("/aliyun/delete", summary="删除文件或目录(阿里云盘)", response_model=schemas.Response) @router.get("/aliyun/delete", summary="删除文件或目录(阿里云盘)", response_model=schemas.Response)
def delete(path: str, _: schemas.TokenPayload = Depends(verify_token)) -> Any: def delete(path: str,
fileid: str,
_: schemas.TokenPayload = Depends(verify_token)) -> Any:
""" """
删除文件或目录 删除文件或目录
""" """
if not path: if not fileid:
return schemas.Response(success=False) return schemas.Response(success=False)
if not path:
path = "/"
@router.get("/aliyun/download", summary="下载文件(阿里云盘)") @router.get("/aliyun/download", summary="下载文件(阿里云盘)")
def download(path: str, _: schemas.TokenPayload = Depends(verify_uri_token)) -> Any: def download(path: str,
fileid: str,
_: schemas.TokenPayload = Depends(verify_uri_token)) -> Any:
""" """
下载文件或目录 下载文件或目录
""" """
if not path: if not fileid:
return schemas.Response(success=False) return schemas.Response(success=False)
if not path:
path = "/"
@router.get("/aliyun/rename", summary="重命名文件或目录(阿里云盘)", response_model=schemas.Response) @router.get("/aliyun/rename", summary="重命名文件或目录(阿里云盘)", response_model=schemas.Response)
def rename(path: str, new_name: str, _: schemas.TokenPayload = Depends(verify_token)) -> Any: def rename(fileid: str, new_name: str, _: schemas.TokenPayload = Depends(verify_token)) -> Any:
""" """
重命名文件或目录 重命名文件或目录
""" """
if not path or not new_name: if not fileid or not new_name:
return schemas.Response(success=False) return schemas.Response(success=False)
@router.get("/aliyun/image", summary="读取图片(阿里云盘)", response_model=schemas.Response) @router.get("/aliyun/image", summary="读取图片(阿里云盘)", response_model=schemas.Response)
def image(path: str, _: schemas.TokenPayload = Depends(verify_uri_token)) -> Any: def image(fileid: str, _: schemas.TokenPayload = Depends(verify_uri_token)) -> Any:
""" """
读取图片 读取图片
""" """
if not path: if not fileid:
return schemas.Response(success=False) return schemas.Response(success=False)

View File

@ -1,10 +1,7 @@
import base64 import base64
import datetime
import json import json
import os
import time import time
import uuid import uuid
from pathlib import Path
from typing import Optional, Tuple, List from typing import Optional, Tuple, List
from requests import Response from requests import Response
@ -44,8 +41,7 @@ class AliyunHelper:
def __init__(self): def __init__(self):
self.systemconfig = SystemConfigOper() self.systemconfig = SystemConfigOper()
@staticmethod def __log_error(self, res: Response, apiname: str):
def __log_error(res: Response, apiname: str):
""" """
统一处理和打印错误信息 统一处理和打印错误信息
""" """
@ -56,7 +52,11 @@ class AliyunHelper:
code = result.get("code") code = result.get("code")
message = result.get("message") message = result.get("message")
display_message = result.get("display_message") display_message = result.get("display_message")
if code or message:
logger.warn(f"Aliyun {apiname}失败:{code} - {display_message or message}") logger.warn(f"Aliyun {apiname}失败:{code} - {display_message or message}")
if code == "DeviceSessionSignatureInvalid":
logger.warn("设备会话签名无效,请重新扫码登录!")
self.clear_params()
@property @property
def auth_params(self): def auth_params(self):