修复CDN URL和路径构建逻辑
- 修复CDN URL构建,正确处理路径重复问题
- 修复rclone路径构建,使用正确的格式: {rclone_remote}:{storage_path}/{version_path}/{filename}
- 修复CDN路径构建,使用正确的格式: {cdn_base_url}/{version_path}/{filename}
- 修复CDN内容解密处理,支持加密和解密后的内容
- 添加路径构建测试示例
- 完善错误处理和空内容处理
This commit is contained in:
58
examples/config_usage.py
Normal file
58
examples/config_usage.py
Normal file
@@ -0,0 +1,58 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Config-Man 配置使用示例
|
||||
|
||||
演示如何使用配置文件和环境变量。
|
||||
"""
|
||||
|
||||
import sys
|
||||
import os
|
||||
|
||||
# 添加项目根目录到路径
|
||||
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
|
||||
|
||||
from config_man.utils import config
|
||||
|
||||
|
||||
def main():
|
||||
"""配置使用示例"""
|
||||
print("Config-Man 配置使用示例")
|
||||
print("=" * 50)
|
||||
|
||||
# 1. 显示当前配置
|
||||
print("\n1. 当前配置:")
|
||||
print(f"存储路径: {config.get_storage_path()}")
|
||||
print(f"CDN基础URL: {config.get_cdn_base_url()}")
|
||||
print(f"加密密钥: {config.get_crypto_key()}")
|
||||
|
||||
# 2. 设置配置值
|
||||
print("\n2. 设置配置值:")
|
||||
config.set('storage.path', 'custom_storage')
|
||||
config.set('cdn.base_url', 'https://cdn.example.com')
|
||||
config.set('display.max_width', 100)
|
||||
|
||||
print("配置已更新")
|
||||
|
||||
# 3. 显示更新后的配置
|
||||
print("\n3. 更新后的配置:")
|
||||
print(f"存储路径: {config.get_storage_path()}")
|
||||
print(f"CDN基础URL: {config.get_cdn_base_url()}")
|
||||
print(f"显示最大宽度: {config.get('display.max_width')}")
|
||||
|
||||
# 4. 保存配置到文件
|
||||
print("\n4. 保存配置:")
|
||||
config.save()
|
||||
print(f"配置已保存到: {config.config_file}")
|
||||
print(f"配置文件名称: config-man.json")
|
||||
|
||||
# 5. 环境变量示例
|
||||
print("\n5. 环境变量使用示例:")
|
||||
print("可以通过以下环境变量覆盖配置:")
|
||||
print(" CONFIG_MAN_STORAGE_PATH=custom_path")
|
||||
print(" CONFIG_MAN_CDN_BASE_URL=https://cdn.example.com")
|
||||
print(" CONFIG_MAN_CRYPTO_KEY=custom_key")
|
||||
print(" CONFIG_MAN_DISPLAY_MAX_WIDTH=120")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
50
examples/test_cdn_url.py
Normal file
50
examples/test_cdn_url.py
Normal file
@@ -0,0 +1,50 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
测试CDN URL构建
|
||||
|
||||
验证CDN URL的正确构建。
|
||||
"""
|
||||
|
||||
import sys
|
||||
import os
|
||||
|
||||
# 添加项目根目录到路径
|
||||
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
|
||||
|
||||
from config_man.core import ConfigManager
|
||||
|
||||
|
||||
def main():
|
||||
"""测试CDN URL构建"""
|
||||
print("测试CDN URL构建")
|
||||
print("=" * 50)
|
||||
|
||||
# 创建配置管理器
|
||||
config_manager = ConfigManager()
|
||||
|
||||
# 测试不同版本的CDN URL构建
|
||||
versions = ["0.29", "0.30"]
|
||||
platforms = ["android", "ios"]
|
||||
|
||||
print(f"CDN基础URL: {config_manager.cdn_base_url}")
|
||||
print(f"存储路径: {config_manager.storage_path}")
|
||||
print()
|
||||
|
||||
for version in versions:
|
||||
for platform in platforms:
|
||||
# 获取CDN URL
|
||||
cdn_url = config_manager.get_cdn_url(version, platform)
|
||||
|
||||
print(f"版本: {version}, 平台: {platform}")
|
||||
print(f"CDN URL: {cdn_url}")
|
||||
print()
|
||||
|
||||
# 显示当前配置
|
||||
print(f"当前CDN配置:")
|
||||
print(f"CDN基础URL: {config_manager.cdn_base_url}")
|
||||
print(f"CDN超时: {config_manager.cdn_config.get('timeout', 10)}")
|
||||
print(f"CDN重试次数: {config_manager.cdn_config.get('retry_count', 3)}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
53
examples/test_paths.py
Normal file
53
examples/test_paths.py
Normal file
@@ -0,0 +1,53 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
测试路径构建
|
||||
|
||||
验证rclone路径和CDN路径的正确构建。
|
||||
"""
|
||||
|
||||
import sys
|
||||
import os
|
||||
|
||||
# 添加项目根目录到路径
|
||||
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
|
||||
|
||||
from config_man.core import ConfigManager
|
||||
|
||||
|
||||
def main():
|
||||
"""测试路径构建"""
|
||||
print("测试路径构建")
|
||||
print("=" * 50)
|
||||
|
||||
# 创建配置管理器
|
||||
config_manager = ConfigManager()
|
||||
|
||||
# 测试不同版本的路径构建
|
||||
versions = ["0.29", "0.30"]
|
||||
platforms = ["android", "ios"]
|
||||
|
||||
print(f"存储配置:")
|
||||
print(f" rclone_remote: {config_manager.storage_config.get('rclone_remote', 'remote')}")
|
||||
print(f" storage_path: {config_manager.storage_path}")
|
||||
print()
|
||||
|
||||
print(f"CDN配置:")
|
||||
print(f" base_url: {config_manager.cdn_base_url}")
|
||||
print()
|
||||
|
||||
for version in versions:
|
||||
for platform in platforms:
|
||||
# 获取rclone路径
|
||||
rclone_path = config_manager.get_rclone_path(version, platform)
|
||||
|
||||
# 获取CDN URL
|
||||
cdn_url = config_manager.get_cdn_url(version, platform)
|
||||
|
||||
print(f"版本: {version}, 平台: {platform}")
|
||||
print(f"Rclone路径: {rclone_path}")
|
||||
print(f"CDN URL: {cdn_url}")
|
||||
print()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
48
examples/test_rclone_path.py
Normal file
48
examples/test_rclone_path.py
Normal file
@@ -0,0 +1,48 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
测试rclone路径构建
|
||||
|
||||
验证rclone_remote配置项的正确使用。
|
||||
"""
|
||||
|
||||
import sys
|
||||
import os
|
||||
|
||||
# 添加项目根目录到路径
|
||||
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
|
||||
|
||||
from config_man.core import ConfigManager
|
||||
|
||||
|
||||
def main():
|
||||
"""测试rclone路径构建"""
|
||||
print("测试rclone路径构建")
|
||||
print("=" * 50)
|
||||
|
||||
# 创建配置管理器
|
||||
config_manager = ConfigManager()
|
||||
|
||||
# 测试不同版本的路径构建
|
||||
versions = ["0.29", "0.30"]
|
||||
platforms = ["android", "ios"]
|
||||
|
||||
for version in versions:
|
||||
for platform in platforms:
|
||||
# 获取配置路径
|
||||
config_path = config_manager.get_config_path(version, platform)
|
||||
|
||||
# 获取rclone路径
|
||||
rclone_path = config_manager.get_rclone_path(version, platform)
|
||||
|
||||
print(f"\n版本: {version}, 平台: {platform}")
|
||||
print(f"配置路径: {config_path}")
|
||||
print(f"rclone路径: {rclone_path}")
|
||||
|
||||
# 显示当前配置
|
||||
print(f"\n当前存储配置:")
|
||||
print(f"存储路径: {config_manager.storage_path}")
|
||||
print(f"rclone远程: {config_manager.storage_config.get('rclone_remote', 'remote')}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user