feat: 皮肤包上传管理功能,持久化数据目录

- 新增皮肤包上传/列表/删除 API(基于 upload_key)
- 构建时自动解压 ZIP 皮肤包应用到项目
- 配置和皮肤包迁移到 backend/data/ 目录,切分支不会丢失
- 旧式目录皮肤自动迁移为 ZIP 格式
- 前端皮肤包管理 UI(上传、删除、下拉选择)
- .gitignore 排除运行时数据目录
This commit is contained in:
shen
2026-06-09 10:24:14 +08:00
parent 0ba16635df
commit 9384062b38
5 changed files with 296 additions and 8 deletions
+10 -3
View File
@@ -15,11 +15,18 @@ if _env_file.exists():
# 项目根目录(iOS 源码,也作为 AutoPacking 脚本来源)
PROJECT_ROOT = Path(os.getenv("PROJECT_ROOT", "/Users/shen/Work/Code/Readoor"))
# AutoPacking 目录
# AutoPacking 目录(打包脚本来源,随分支变化)
AUTOPACKING_DIR = PROJECT_ROOT / "AutoPacking"
# config.json 路径
CONFIG_JSON_PATH = AUTOPACKING_DIR / "config.json"
# 持久化数据目录(不随分支变化,存放运行时配置和皮肤包)
DATA_DIR = Path(os.getenv("DATA_DIR", str(Path(__file__).parent / "data")))
DATA_DIR.mkdir(parents=True, exist_ok=True)
# config.json 路径(持久化,不随分支变化)
CONFIG_JSON_PATH = DATA_DIR / "config.json"
# 皮肤包存储目录(持久化,不随分支变化)
SKINS_DIR = DATA_DIR / "skins"
# 打包基础目录
BUILD_BASE_DIR = Path(os.getenv("BUILD_BASE_DIR", "/Users/shen/Documents"))