"""
配置管理模块
处理环境变量和应用配置。
"""
import os
from typing import Optional
from dotenv import load_dotenv
from .exceptions import ConfigurationError
# 加载环境变量
load_dotenv()
class Config:
"""应用配置类"""
def __init__(self):
self.fs_url = os.getenv("FS_URL")
self.fs_ak = os.getenv("FS_AK")
self.fs_sk = os.getenv("FS_SK")
self.default_bucket = os.getenv("FS_DEFAULT_BUCKET", "agentfiles")
try:
self.timeout = int(os.getenv("TIMEOUT", "30"))
except ValueError:
raise ConfigurationError("TIMEOUT必须是有效的整数")
def validate(self) -> bool:
"""验证必需的配置项"""
missing_configs = []
if not self.fs_url:
missing_configs.append("FS_URL")
elif not self.fs_url.startswith(('http://', 'https://')):
raise ConfigurationError("FS_URL必须是有效的HTTP或HTTPS地址")
if not self.fs_ak:
missing_configs.append("FS_AK")
if not self.fs_sk:
missing_configs.append("FS_SK")
if missing_configs:
raise ConfigurationError(f"缺少必需的环境变量: {', '.join(missing_configs)}")
if self.timeout <= 0:
raise ConfigurationError("TIMEOUT必须大于0")
return True
# 全局配置实例
config = Config()