config.go 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  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. // GetProxyURL 生成OSS代理URL(加密版本)
  32. // 返回相对路径,让前端自动使用当前域名
  33. func GetProxyURL(originalURL string) string {
  34. if originalURL == "" {
  35. return ""
  36. }
  37. encryptedURL, err := EncryptURL(originalURL)
  38. if err != nil {
  39. return ""
  40. }
  41. return "/apiv1/oss/parse/?url=" + encryptedURL
  42. }
  43. // GetMySQLConfig 获取MySQL配置
  44. func GetMySQLConfig() map[string]string {
  45. return map[string]string{
  46. "user": MustGetConfigString("mysqluser"),
  47. "pass": MustGetConfigString("mysqlpass"),
  48. "urls": MustGetConfigString("mysqlurls"),
  49. "port": MustGetConfigString("mysqlhttpport"),
  50. "db": MustGetConfigString("mysqldb"),
  51. }
  52. }
  53. // GetOSSConfig 获取OSS配置
  54. func GetOSSConfig() map[string]string {
  55. return map[string]string{
  56. "endpoint": MustGetConfigString("oss_endpoint"),
  57. "access_key": MustGetConfigString("oss_access_key_id"),
  58. "secret_key": MustGetConfigString("oss_access_key_secret"),
  59. "bucket": MustGetConfigString("oss_bucket"),
  60. "encrypt_key": GetConfigString("oss_parse_encrypt_key", ""),
  61. }
  62. }
  63. // GetYOLOBaseURL 获取YOLO服务地址
  64. func GetYOLOBaseURL() string {
  65. return strings.TrimRight(MustGetConfigString("yolo_base_url"), "/")
  66. }
  67. // GetAuthAPIURL 获取认证服务地址
  68. func GetAuthAPIURL() string {
  69. return strings.TrimRight(MustGetConfigString("auth_api_url"), "/")
  70. }
  71. // GetKnowledgeSearchURL 获取知识库搜索地址
  72. func GetKnowledgeSearchURL() string {
  73. return MustGetConfigString("knowledge_search_url")
  74. }
  75. // GetDifyWorkflowURL 获取Dify工作流地址
  76. func GetDifyWorkflowURL() string {
  77. return MustGetConfigString("dify_workflow_url")
  78. }