169 lines
4.3 KiB
Markdown
169 lines
4.3 KiB
Markdown
# 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平台。
|
||
|
||
```bash
|
||
config-man view --version <版本号>
|
||
```
|
||
|
||
**参数说明**:
|
||
- `--version`: 版本号,格式为 0.29, 0.30, 0.31 等
|
||
|
||
**功能特性**:
|
||
- 同时显示Android和iOS平台的配置文件
|
||
- 对比对象存储中的内容和CDN中的内容
|
||
- 使用表格格式漂亮地展示配置差异
|
||
- 支持JSON格式化输出
|
||
|
||
### 功能2: 建议更新
|
||
|
||
在目标版本的配置文件中添加 `Ver_New` 属性,提示用户有新版本可用。
|
||
|
||
```bash
|
||
config-man suggest-update --platform <平台> --target-version <目标版本> --update-version <更新版本>
|
||
```
|
||
|
||
**参数说明**:
|
||
- `--platform`: 平台类型,支持 android 或 ios
|
||
- `--target-version`: 目标版本号,如 0.29
|
||
- `--update-version`: 更新版本号,如 0.30
|
||
|
||
### 功能3: 强制更新
|
||
|
||
直接更新目标版本的 `Ver` 属性,强制用户升级到新版本。
|
||
|
||
```bash
|
||
config-man force-update --platform <平台> --target-version <目标版本> --update-version <更新版本>
|
||
```
|
||
|
||
**参数说明**:
|
||
- `--platform`: 平台类型,支持 android 或 ios
|
||
- `--target-version`: 目标版本号,如 0.29
|
||
- `--update-version`: 更新版本号,如 0.30
|
||
|
||
## 配置文件结构
|
||
|
||
### 配置项说明
|
||
```json
|
||
{
|
||
"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命令行工具
|
||
|
||
## 安装和使用
|
||
|
||
### 安装依赖
|
||
```bash
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
### 配置环境
|
||
```bash
|
||
# 配置rclone
|
||
rclone config
|
||
|
||
# 配置Cloudflare API
|
||
export CLOUDFLARE_API_TOKEN=your_token
|
||
```
|
||
|
||
### 使用示例
|
||
```bash
|
||
# 查看配置
|
||
config-man view --version 0.30
|
||
|
||
# 建议更新
|
||
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
|
||
```
|
||
|
||
## 错误处理
|
||
|
||
### 常见错误场景
|
||
- 版本号不存在
|
||
- 平台类型错误
|
||
- 网络连接失败
|
||
- 文件加密/解密失败
|
||
- CDN刷新失败
|
||
|
||
### 错误处理策略
|
||
- 提供清晰的错误信息
|
||
- 支持重试机制
|
||
- 记录详细的操作日志
|
||
- 提供回滚功能
|