61 lines
1.2 KiB
Go
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
|
|
}
|