v0.2.7: 修复Redis连接 + 启动管理后台

- 修复Redis认证 (配置密码)
- 启动Python管理后台 (端口9531, 15个功能开关)
- 统一版本号 0.2.7
- 更新docker-compose.yml (镜像版本/Redis URL/Admin服务)
This commit is contained in:
2026-05-17 02:22:18 +08:00
commit 83cbfaf03f
164 changed files with 25195 additions and 0 deletions

View File

@@ -0,0 +1,68 @@
"""
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,
}