topfans/backend/services/laserCompositor/config/config.go
2026-06-03 22:19:22 +08:00

61 lines
1.2 KiB
Go

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
}