# 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. 依赖是否完整安装