config.go 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. package utils
  2. import (
  3. "fmt"
  4. "strings"
  5. beego "github.com/beego/beego/v2/server/web"
  6. )
  7. // GetConfigString 获取字符串类型配置,如果不存在返回默认值
  8. func GetConfigString(key string, defaultValue string) string {
  9. value, err := beego.AppConfig.String(key)
  10. if err != nil || value == "" {
  11. return defaultValue
  12. }
  13. return value
  14. }
  15. // MustGetConfigString 获取字符串类型配置,如果不存在则panic
  16. func MustGetConfigString(key string) string {
  17. value, err := beego.AppConfig.String(key)
  18. if err != nil || value == "" {
  19. panic(fmt.Sprintf("配置项 %s 未设置或为空,请检查 conf/app.conf 文件", key))
  20. }
  21. return value
  22. }
  23. // GetConfigInt 获取整数类型配置,如果不存在返回默认值
  24. func GetConfigInt(key string, defaultValue int) int {
  25. value, err := beego.AppConfig.Int(key)
  26. if err != nil {
  27. return defaultValue
  28. }
  29. return value
  30. }
  31. // GetBaseURL 获取系统基础URL
  32. func GetBaseURL() string {
  33. return strings.TrimRight(MustGetConfigString("base_url"), "/")
  34. }
  35. // GetProxyURL 生成OSS代理URL(加密版本)
  36. // 不再硬编码base_url,改为从配置读取
  37. func GetProxyURL(originalURL string) string {
  38. if originalURL == "" {
  39. return ""
  40. }
  41. encryptedURL, err := EncryptURL(originalURL)
  42. if err != nil {
  43. return ""
  44. }
  45. baseURL := GetBaseURL()
  46. return baseURL + "/apiv1/oss/parse/?url=" + encryptedURL
  47. }
  48. // GetMySQLConfig 获取MySQL配置
  49. func GetMySQLConfig() map[string]string {
  50. return map[string]string{
  51. "user": MustGetConfigString("mysql_user"),
  52. "pass": MustGetConfigString("mysql_pass"),
  53. "urls": MustGetConfigString("mysql_urls"),
  54. "port": MustGetConfigString("mysql_port"),
  55. "db": MustGetConfigString("mysql_db"),
  56. }
  57. }
  58. // GetOSSConfig 获取OSS配置
  59. func GetOSSConfig() map[string]string {
  60. return map[string]string{
  61. "endpoint": MustGetConfigString("oss_endpoint"),
  62. "access_key": MustGetConfigString("oss_access_key_id"),
  63. "secret_key": MustGetConfigString("oss_access_key_secret"),
  64. "bucket": MustGetConfigString("oss_bucket"),
  65. "encrypt_key": GetConfigString("oss_parse_encrypt_key", ""),
  66. }
  67. }
  68. // GetYOLOBaseURL 获取YOLO服务地址
  69. func GetYOLOBaseURL() string {
  70. return strings.TrimRight(MustGetConfigString("yolo_base_url"), "/")
  71. }
  72. // GetAuthAPIURL 获取认证服务地址
  73. func GetAuthAPIURL() string {
  74. return strings.TrimRight(MustGetConfigString("auth_api_url"), "/")
  75. }
  76. // GetKnowledgeSearchURL 获取知识库搜索地址
  77. func GetKnowledgeSearchURL() string {
  78. return MustGetConfigString("knowledge_search_url")
  79. }
  80. // GetDifyWorkflowURL 获取Dify工作流地址
  81. func GetDifyWorkflowURL() string {
  82. return MustGetConfigString("dify_workflow_url")
  83. }