Files
config-man/README.md

169 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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刷新失败
### 错误处理策略
- 提供清晰的错误信息
- 支持重试机制
- 记录详细的操作日志
- 提供回滚功能