package utils import ( "fmt" "strings" beego "github.com/beego/beego/v2/server/web" ) // GetConfigString 获取字符串类型配置,如果不存在返回默认值 func GetConfigString(key string, defaultValue string) string { value, err := beego.AppConfig.String(key) if err != nil || value == "" { return defaultValue } return value } // MustGetConfigString 获取字符串类型配置,如果不存在则panic func MustGetConfigString(key string) string { value, err := beego.AppConfig.String(key) if err != nil || value == "" { panic(fmt.Sprintf("配置项 %s 未设置或为空,请检查 conf/app.conf 文件", key)) } return value } // GetConfigInt 获取整数类型配置,如果不存在返回默认值 func GetConfigInt(key string, defaultValue int) int { value, err := beego.AppConfig.Int(key) if err != nil { return defaultValue } return value } // GetProxyURL 生成OSS代理URL(加密版本) // 返回相对路径,让前端自动使用当前域名 func GetProxyURL(originalURL string) string { if originalURL == "" { return "" } encryptedURL, err := EncryptURL(originalURL) if err != nil { return "" } return "/apiv1/oss/parse/?url=" + encryptedURL } // GetMySQLConfig 获取MySQL配置 func GetMySQLConfig() map[string]string { return map[string]string{ "user": MustGetConfigString("mysqluser"), "pass": MustGetConfigString("mysqlpass"), "urls": MustGetConfigString("mysqlurls"), "port": MustGetConfigString("mysqlhttpport"), "db": MustGetConfigString("mysqldb"), } } // GetOSSConfig 获取OSS配置 func GetOSSConfig() map[string]string { return map[string]string{ "endpoint": MustGetConfigString("oss_endpoint"), "access_key": MustGetConfigString("oss_access_key_id"), "secret_key": MustGetConfigString("oss_access_key_secret"), "bucket": MustGetConfigString("oss_bucket"), "encrypt_key": GetConfigString("oss_parse_encrypt_key", ""), } } // GetYOLOBaseURL 获取YOLO服务地址 func GetYOLOBaseURL() string { return strings.TrimRight(MustGetConfigString("yolo_base_url"), "/") } // GetAuthAPIURL 获取认证服务地址 func GetAuthAPIURL() string { return strings.TrimRight(MustGetConfigString("auth_api_url"), "/") } // GetKnowledgeSearchURL 获取知识库搜索地址 func GetKnowledgeSearchURL() string { return MustGetConfigString("knowledge_search_url") } // GetDifyWorkflowURL 获取Dify工作流地址 func GetDifyWorkflowURL() string { return MustGetConfigString("dify_workflow_url") }