Files
config-man/docs/USAGE.md
2026-04-15 13:05:45 +08:00

302 lines
7.4 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 查看功能使用说明
## 功能概述
Config-Man 的查看功能允许您对比显示对象存储和CDN中的配置内容支持Android和iOS平台。
## 安装依赖
首先安装项目依赖:
```bash
pip install -e .
```
## 基本用法
### 1. 查看配置文件
```bash
# 查看版本 0.30 的配置文件
python main.py view --version 0.30
# 以JSON格式输出
python main.py view --version 0.30 --json
# 使用模拟环境进行测试
python main.py view --version 0.30 --mock
```
### 2. 查看帮助信息
```bash
# 查看主命令帮助
python main.py --help
# 查看view命令帮助
python main.py view --help
```
## 参数说明
### view 命令参数
- `--version`: 版本号,格式为 0.29, 0.30, 0.31 等(必需)
- `--json`: 以JSON格式输出可选
- `--storage-path`: 对象存储路径前缀(覆盖配置文件)
- `--cdn-url`: CDN基础URL覆盖配置文件
- `--mock`: 使用模拟环境进行测试(可选)
### 配置管理命令
- `show-config`: 显示当前配置
- `set-config`: 设置配置值
## 配置文件
Config-Man 支持多种配置方式:
### 1. 配置文件
默认配置文件位置:
- 用户配置: `~/.config/config-man/config-man.json`
- 项目配置: `./config-man.json`
配置文件格式:
```json
{
"storage": {
"path": "ab",
"rclone_remote": "remote",
"timeout": 30
},
"cdn": {
"base_url": "",
"timeout": 10,
"retry_count": 3
},
"crypto": {
"algorithm": "DES",
"key": "tbambooz"
},
"display": {
"table_format": "grid",
"max_width": 80,
"truncate_length": 25
}
}
```
### 2. 环境变量
支持以下环境变量:
| 环境变量 | 配置项 | 说明 |
|---------|--------|------|
| `CONFIG_MAN_STORAGE_PATH` | `storage.path` | 存储路径 |
| `CONFIG_MAN_STORAGE_RCLONE_REMOTE` | `storage.rclone_remote` | rclone远程名称 |
| `CONFIG_MAN_STORAGE_TIMEOUT` | `storage.timeout` | 存储操作超时时间 |
| `CONFIG_MAN_CDN_BASE_URL` | `cdn.base_url` | CDN基础URL |
| `CONFIG_MAN_CDN_TIMEOUT` | `cdn.timeout` | CDN请求超时时间 |
| `CONFIG_MAN_CDN_RETRY_COUNT` | `cdn.retry_count` | CDN重试次数 |
| `CONFIG_MAN_CRYPTO_KEY` | `crypto.key` | 加密密钥 |
| `CONFIG_MAN_CRYPTO_ALGORITHM` | `crypto.algorithm` | 加密算法 |
| `CONFIG_MAN_DISPLAY_TABLE_FORMAT` | `display.table_format` | 表格格式 |
| `CONFIG_MAN_DISPLAY_MAX_WIDTH` | `display.max_width` | 最大宽度 |
| `CONFIG_MAN_DISPLAY_TRUNCATE_LENGTH` | `display.truncate_length` | 截断长度 |
### 3. 命令行参数
命令行参数会覆盖配置文件和环境变量的设置。
## 输出格式
### 表格格式(默认)
```
版本: 0.30 | 平台: Android
┌─────────────────┬─────────────────────┬─────────────────────┬──────────┐
│ 配置项 │ 对象存储内容 │ CDN内容 │ 状态 │
├─────────────────┼─────────────────────┼─────────────────────┼──────────┤
│ Ver │ 0.30.2ghi789 │ 0.30.2ghi789 │ ✅ 一致 │
│ EventApiURL │ https://n3backend. │ https://n3backend. │ ✅ 一致 │
│ NewFeature │ enabled │ N/A │ ❌ 不同 │
│ ... │ ... │ ... │ ... │
└─────────────────┴─────────────────────┴─────────────────────┴──────────┘
```
### JSON格式
```json
{
"version": "0.30",
"platform": "android",
"storage_config": {
"EventApiURL": "https://n3backend.azurewebsites.net/",
"Ver": "0.30.2ghi789",
"NewFeature": "enabled"
},
"cdn_config": {
"EventApiURL": "https://n3backend.azurewebsites.net/",
"Ver": "0.30.2ghi789"
}
}
```
## 模拟环境测试
为了方便测试,项目提供了模拟环境:
```bash
# 使用模拟环境测试
python main.py view --version 0.30 --mock
```
模拟环境会:
1. 自动创建测试配置文件
2. 模拟rclone命令
3. 提供完整的测试数据
## 错误处理
### 常见错误
1. **版本号格式错误**
```
错误: 无效的版本号格式: 1.2.3
```
2. **rclone未安装**
```
错误: rclone 未安装或不可用。请先安装 rclone。
```
3. **文件不存在**
```
警告: 无法从对象存储下载 ab/0_30/androidconfig.json: 文件不存在
```
4. **网络连接失败**
```
警告: 无法从CDN获取 https://cdn.example.com/ab/0_30/androidconfig.json
```
## 配置说明
### 配置文件结构
配置文件包含以下主要字段:
- **EventApiURL**: API端点URL
- **Ver**: 版本信息
- **PlayFabTitle**: PlayFab标题
- **Google_Play_URL**: Google Play商店链接
- **APP_Store_URL**: App Store链接
- **HeartBeat**: 心跳间隔
- **RTMPid**: RTM进程ID
- **RTMServerEndpoint**: RTM服务器端点
- **RTMHmacSecret**: RTM HMAC密钥
- **FuncUrl**: 功能URL
- **FuncKey**: 功能密钥
### 版本号转换
版本号会自动转换为存储路径格式:
- `0.29` → `0_29`
- `0.30` → `0_30`
- `1.00` → `1_00`
## 高级用法
### 配置管理
```bash
# 显示当前配置
python main.py show-config
# 设置配置值
python main.py set-config --key storage.path --value custom_path
python main.py set-config --key cdn.base_url --value https://cdn.example.com
python main.py set-config --key display.max_width --value 100
```
### 环境变量配置
```bash
# 使用环境变量设置配置
export CONFIG_MAN_STORAGE_PATH=custom_path
export CONFIG_MAN_CDN_BASE_URL=https://cdn.example.com
export CONFIG_MAN_DISPLAY_MAX_WIDTH=120
# 运行命令
python main.py view --version 0.30
```
### 命令行参数覆盖
```bash
# 命令行参数会覆盖配置文件设置
python main.py view --version 0.30 --storage-path custom_path --cdn-url https://cdn.example.com
```
### 组合使用
```bash
python main.py view --version 0.30 --json --mock --storage-path test_data/ab
```
## 故障排除
### 1. 安装问题
确保安装了所有依赖:
```bash
pip install click pycryptodome tabulate requests rich
```
### 2. rclone配置
如果使用真实环境需要配置rclone
```bash
rclone config
```
### 3. 权限问题
确保有足够的权限访问对象存储和CDN。
### 4. 网络问题
检查网络连接和防火墙设置。
## 开发说明
### 项目结构
```
config-man/
├── main.py # 主程序入口
├── appconfig_tool.py # 加密解密工具
├── config_manager.py # 配置管理器
├── display_manager.py # 显示管理器
├── view_command.py # 查看命令处理器
├── mock_rclone.py # 模拟rclone环境
└── test_configs.py # 测试配置生成器
```
### 扩展功能
要添加新的查看功能,可以:
1. 在 `config_manager.py` 中添加新的方法
2. 在 `display_manager.py` 中添加新的显示格式
3. 在 `view_command.py` 中添加新的处理逻辑
4. 在 `main.py` 中添加新的CLI命令
## 联系支持
如果遇到问题,请检查:
1. 版本号格式是否正确
2. 网络连接是否正常
3. rclone配置是否正确
4. 依赖是否完整安装