- 修复CDN URL构建,正确处理路径重复问题
- 修复rclone路径构建,使用正确的格式: {rclone_remote}:{storage_path}/{version_path}/{filename}
- 修复CDN路径构建,使用正确的格式: {cdn_base_url}/{version_path}/{filename}
- 修复CDN内容解密处理,支持加密和解密后的内容
- 添加路径构建测试示例
- 完善错误处理和空内容处理
7.4 KiB
7.4 KiB
Config-Man 查看功能使用说明
功能概述
Config-Man 的查看功能允许您对比显示对象存储和CDN中的配置内容,支持Android和iOS平台。
安装依赖
首先安装项目依赖:
pip install -e .
基本用法
1. 查看配置文件
# 查看版本 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. 查看帮助信息
# 查看主命令帮助
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
配置文件格式:
{
"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格式
{
"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"
}
}
模拟环境测试
为了方便测试,项目提供了模拟环境:
# 使用模拟环境测试
python main.py view --version 0.30 --mock
模拟环境会:
- 自动创建测试配置文件
- 模拟rclone命令
- 提供完整的测试数据
错误处理
常见错误
-
版本号格式错误
错误: 无效的版本号格式: 1.2.3 -
rclone未安装
错误: rclone 未安装或不可用。请先安装 rclone。 -
文件不存在
警告: 无法从对象存储下载 ab/0_30/androidconfig.json: 文件不存在 -
网络连接失败
警告: 无法从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_290.30→0_301.00→1_00
高级用法
配置管理
# 显示当前配置
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
环境变量配置
# 使用环境变量设置配置
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
命令行参数覆盖
# 命令行参数会覆盖配置文件设置
python main.py view --version 0.30 --storage-path custom_path --cdn-url https://cdn.example.com
组合使用
python main.py view --version 0.30 --json --mock --storage-path test_data/ab
故障排除
1. 安装问题
确保安装了所有依赖:
pip install click pycryptodome tabulate requests rich
2. rclone配置
如果使用真实环境,需要配置rclone:
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 # 测试配置生成器
扩展功能
要添加新的查看功能,可以:
- 在
config_manager.py中添加新的方法 - 在
display_manager.py中添加新的显示格式 - 在
view_command.py中添加新的处理逻辑 - 在
main.py中添加新的CLI命令
联系支持
如果遇到问题,请检查:
- 版本号格式是否正确
- 网络连接是否正常
- rclone配置是否正确
- 依赖是否完整安装