45 lines
1.1 KiB
Go
45 lines
1.1 KiB
Go
package config
|
|
|
|
import (
|
|
"os"
|
|
)
|
|
|
|
type Config struct {
|
|
ServerAddr string
|
|
DBPath string
|
|
JWTSecret string
|
|
BaseURL string
|
|
|
|
// 本地存储
|
|
LocalUploadPath string
|
|
|
|
// Cloudflare R2
|
|
R2AccountID string
|
|
R2AccessKeyID string
|
|
R2AccessKeySecret string
|
|
R2BucketName string
|
|
R2PublicURL string
|
|
}
|
|
|
|
func Load() *Config {
|
|
return &Config{
|
|
ServerAddr: getEnv("SERVER_ADDR", ":8080"),
|
|
DBPath: getEnv("DB_PATH", "./data/healthflow.db"),
|
|
JWTSecret: getEnv("JWT_SECRET", "change-me-in-production"),
|
|
BaseURL: getEnv("BASE_URL", "http://localhost:8080"),
|
|
LocalUploadPath: getEnv("LOCAL_UPLOAD_PATH", "./uploads"),
|
|
R2AccountID: getEnv("R2_ACCOUNT_ID", ""),
|
|
R2AccessKeyID: getEnv("R2_ACCESS_KEY_ID", ""),
|
|
R2AccessKeySecret: getEnv("R2_ACCESS_KEY_SECRET", ""),
|
|
R2BucketName: getEnv("R2_BUCKET_NAME", "healthflow"),
|
|
R2PublicURL: getEnv("R2_PUBLIC_URL", ""),
|
|
}
|
|
}
|
|
|
|
func getEnv(key, defaultValue string) string {
|
|
if value := os.Getenv(key); value != "" {
|
|
return value
|
|
}
|
|
return defaultValue
|
|
}
|