- 修复Redis认证 (配置密码) - 启动Python管理后台 (端口9531, 15个功能开关) - 统一版本号 0.2.7 - 更新docker-compose.yml (镜像版本/Redis URL/Admin服务)
69 lines
2.9 KiB
Python
69 lines
2.9 KiB
Python
"""
|
|
CloudSearch Transfer — 错误码定义 v1.0.0
|
|
参考 netdisk Go SDK 的错误码设计 + 各项目实践
|
|
"""
|
|
|
|
from enum import IntEnum
|
|
|
|
|
|
class TransferErrorCode(IntEnum):
|
|
"""统一错误码"""
|
|
# 通用错误 (40xxx)
|
|
URL_INVALID = 40001 # URL格式错误或无法识别平台
|
|
NOT_LOGIN = 40002 # 未登录或凭证已失效
|
|
CAPACITY_FULL = 40003 # 存储空间容量不足
|
|
SHARE_NOT_EXIST = 40004 # 分享不存在或已失效
|
|
PASSCODE_WRONG = 40005 # 提取码错误
|
|
RESOURCE_EMPTY = 40006 # 资源内容为空或全为广告文件
|
|
NETWORK_ERROR = 40007 # 网络请求失败
|
|
TIMEOUT = 40008 # 操作超时
|
|
NO_CONFIG = 40009 # 该平台未配置凭证
|
|
SHARE_LINK_FAIL = 40010 # 分享创建失败
|
|
SHARE_LIMIT = 40011 # 今日分享次数过多
|
|
DIR_NOT_EXIST = 40012 # 目标存储目录不存在
|
|
SENSITIVE_RESOURCE = 40013 # 资源内容违规
|
|
|
|
# 平台特有错误 (41xxx)
|
|
BAIDU_BDSTOKEN_FAIL = 41001 # 百度bdstoken获取失败
|
|
ALIYUN_TOKEN_EXPIRED = 41002 # 阿里Token过期
|
|
XUNLEI_CAPTCHA_FAIL = 41003 # 迅雷验证码失败
|
|
QUARK_LOGIN_REQUIRED = 41004 # 夸克需要重新登录
|
|
|
|
|
|
class TransferError(Exception):
|
|
"""转存异常"""
|
|
def __init__(self, code: TransferErrorCode, message: str = None,
|
|
platform: str = None, details: dict = None):
|
|
self.code = code
|
|
self.message = message or self._default_message(code)
|
|
self.platform = platform
|
|
self.details = details or {}
|
|
super().__init__(self.message)
|
|
|
|
@staticmethod
|
|
def _default_message(code: TransferErrorCode) -> str:
|
|
messages = {
|
|
TransferErrorCode.URL_INVALID: "URL格式错误或无法识别平台",
|
|
TransferErrorCode.NOT_LOGIN: "未登录或凭证已失效",
|
|
TransferErrorCode.CAPACITY_FULL: "存储空间容量不足",
|
|
TransferErrorCode.SHARE_NOT_EXIST: "分享不存在或已失效",
|
|
TransferErrorCode.PASSCODE_WRONG: "提取码错误",
|
|
TransferErrorCode.RESOURCE_EMPTY: "资源内容为空或全为广告文件",
|
|
TransferErrorCode.NETWORK_ERROR: "网络请求失败",
|
|
TransferErrorCode.TIMEOUT: "操作超时",
|
|
TransferErrorCode.NO_CONFIG: "该平台未配置凭证",
|
|
TransferErrorCode.SHARE_LINK_FAIL: "分享创建失败",
|
|
TransferErrorCode.SHARE_LIMIT: "今日分享次数过多",
|
|
TransferErrorCode.DIR_NOT_EXIST: "目标存储目录不存在",
|
|
TransferErrorCode.SENSITIVE_RESOURCE: "资源内容违规",
|
|
}
|
|
return messages.get(code, f"未知错误 (code={code})")
|
|
|
|
def to_dict(self) -> dict:
|
|
return {
|
|
"code": self.code.value,
|
|
"message": self.message,
|
|
"platform": self.platform,
|
|
"details": self.details,
|
|
}
|