package config import ( "os" "strconv" ) // Config 激光合成服务配置 type Config struct { Port string OSS OSSConfig Logging LoggingConfig } type OSSConfig struct { Region string BucketName string AccessKeyID string AccessKeySecret string AssetDir string } type LoggingConfig struct { Environment string LogLevel string } // Load 从环境变量加载配置 func Load() *Config { return &Config{ Port: getEnv("COMPOSITOR_PORT", "7000"), OSS: OSSConfig{ Region: getEnv("OSS_REGION", "cn-shanghai"), BucketName: getEnv("OSS_BUCKET_NAME", "top-fans-test"), AccessKeyID: getEnv("OSS_ACCESS_KEY_ID", ""), AccessKeySecret: getEnv("OSS_ACCESS_KEY_SECRET", ""), AssetDir: getEnv("OSS_ASSET_DIR", "asset/"), }, Logging: LoggingConfig{ Environment: getEnv("ENV", "development"), LogLevel: getEnv("LOG_LEVEL", "info"), }, } } func getEnv(key, defaultValue string) string { if value := os.Getenv(key); value != "" { return value } return defaultValue } func getEnvInt(key string, defaultValue int) int { if value := os.Getenv(key); value != "" { if v, err := strconv.Atoi(value); err == nil { return v } } return defaultValue }