292154621ca02b990cc59ab808bc910c3badb9c8
Config-Man CLI 工具
项目概述
Config-Man 是一个Python CLI工具,用于管理存储在对象存储中的加密静态资源配置文件。该工具支持多版本管理,通过Cloudflare CDN进行分发,主要用于游戏应用的配置管理。
项目目标
- 简化多版本配置文件的查看和管理
- 支持版本升级策略(建议更新和强制更新)
- 确保配置文件的加密存储和CDN缓存同步
- 提供直观的配置对比功能
系统架构
存储架构
对象存储服务器
├── ab/
│ ├── 0_29/
│ │ ├── androidconfig.json (加密)
│ │ └── iosconfig.json (加密)
│ ├── 0_30/
│ │ ├── androidconfig.json (加密)
│ │ └── iosconfig.json (加密)
│ └── 1_00/
│ ├── androidconfig.json (加密)
│ └── iosconfig.json (加密)
技术栈
- 开发语言: Python 3.13+
- CLI框架: Click 或 Typer
- 存储同步: rclone
- CDN服务: Cloudflare
- 文件加密: AES-256
- 配置格式: JSON
功能说明
功能1: 查看配置文件
对比显示对象存储和CDN中的配置内容,支持Android和iOS平台。
config-man view --version <版本号>
参数说明:
--version: 版本号,格式为 0.29, 0.30, 0.31 等
功能特性:
- 同时显示Android和iOS平台的配置文件
- 对比对象存储中的内容和CDN中的内容
- 使用表格格式漂亮地展示配置差异
- 支持JSON格式化输出
功能2: 建议更新
在目标版本的配置文件中添加 Ver_New 属性,提示用户有新版本可用。
config-man suggest-update --platform <平台> --target-version <目标版本> --update-version <更新版本>
参数说明:
--platform: 平台类型,支持 android 或 ios--target-version: 目标版本号,如 0.29--update-version: 更新版本号,如 0.30--storage-path: 对象存储路径前缀(覆盖配置文件)--cdn-url: CDN基础URL(覆盖配置文件)--mock: 使用模拟环境进行测试
功能特性:
- 在目标版本配置中添加
Ver_New属性 Ver_New的值设为更新版本的Ver属性值- 自动加密并上传到对象存储
- 自动刷新CDN缓存
配置变更示例:
// 修改前
{
"Ver": "0.29.1abc123",
"EventApiURL": "https://n3backend.azurewebsites.net/",
"PlayFabTitle": "B066F"
}
// 修改后
{
"Ver": "0.29.1abc123",
"Ver_New": "0.30.1def456",
"EventApiURL": "https://n3backend.azurewebsites.net/",
"PlayFabTitle": "B066F"
}
使用示例:
# 基本用法
config-man suggest-update --platform android --target-version 0.29 --update-version 0.30
# 指定存储路径和CDN URL
config-man suggest-update --platform ios --target-version 0.29 --update-version 0.30 --storage-path custom/path --cdn-url https://custom.cdn.com
# 使用模拟环境测试
config-man suggest-update --platform android --target-version 0.29 --update-version 0.30 --mock
功能3: 强制更新
直接更新目标版本的 Ver 属性,强制用户升级到新版本。
config-man force-update --platform <平台> --target-version <目标版本> --update-version <更新版本>
参数说明:
--platform: 平台类型,支持 android 或 ios--target-version: 目标版本号,如 0.29--update-version: 更新版本号,如 0.30
配置文件结构
配置项说明
{
"EventApiURL": "https://n3backend.azurewebsites.net/",
"Ver": "0.28.2ece920695",
"PlayFabTitle": "B066F",
"Google_Play_URL": "https://play.google.com/store/apps/details?id=com.arkgame.ft",
"APP_Store_URL": "https://apps.apple.com/us/app/id6505145935",
"HeartBeat": "60",
"RTMPid": "80000586",
"RTMServerEndpoint": "rtm-intl-frontgate.ilivedata.com:13321",
"RTMHmacSecret": "57047697437f4f2c97a835e8d9a53358",
"FuncUrl": "https://leaderboardcreate.azurewebsites.net",
"FuncKey": "R5kU45fNBRd52Eqp3tEqfpZqrbFw53uSSEo7wraUSqIfAzFuRmLm_w=="
}
配置项分类
- API端点: EventApiURL, FuncUrl
- 版本信息: Ver, Ver_New
- 应用商店链接: Google_Play_URL, APP_Store_URL
- 实时通信: RTMPid, RTMServerEndpoint, RTMHmacSecret
- 功能配置: PlayFabTitle, HeartBeat, FuncKey
技术要求
安全要求
- 配置文件在对象存储中加密存储
- 支持AES-256加密算法
- 加密密钥安全管理
- 操作日志记录
性能要求
- 配置文件查看响应时间 < 3秒
- 配置文件修改响应时间 < 5秒
- CDN缓存刷新响应时间 < 10秒
兼容性要求
- 支持Python 3.13+
- 支持Windows、macOS、Linux
- 支持rclone命令行工具
安装和使用
安装依赖
pip install -r requirements.txt
配置环境
# 配置rclone
rclone config
# 配置Cloudflare CDN(可选)
export CLOUDFLARE_API_TOKEN=your_api_token
export CLOUDFLARE_ZONE_ID=your_zone_id
使用示例
# 查看配置
config-man view --version 0.30
# 建议更新(自动刷新CDN缓存)
config-man suggest-update --platform android --target-version 0.29 --update-version 0.30
# 强制更新
config-man force-update --platform ios --target-version 0.29 --update-version 0.30
Cloudflare CDN 配置
Config-Man 支持 Cloudflare CDN 缓存自动刷新。详细设置请参考:Cloudflare CDN 设置指南
错误处理
常见错误场景
- 版本号不存在
- 平台类型错误
- 网络连接失败
- 文件加密/解密失败
- CDN刷新失败
错误处理策略
- 提供清晰的错误信息
- 支持重试机制
- 记录详细的操作日志
- 提供回滚功能
Description
onfig-Man 是一个Python CLI工具,用于管理存储在对象存储中的加密静态资源配置文件。该工具支持多版本管理,通过Cloudflare CDN进行分发,主要用于游戏应用的配置管理。
Languages
Python
100%