config.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package review_service
  2. import (
  3. "encoding/json"
  4. "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
  5. moderation "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/moderation/v3"
  6. moderationRegion "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/moderation/v3/region"
  7. ocr "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/ocr/v1"
  8. ocrRegion "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/ocr/v1/region"
  9. "io/ioutil"
  10. "log"
  11. "sync"
  12. )
  13. type Config struct {
  14. Ak string `json:"review_ak"`
  15. Sk string `json:"review_sk"`
  16. ProjectId string `json:"project_id"`
  17. Client *moderation.ModerationClient `json:"client"`
  18. OcrClient *ocr.OcrClient `json:"ocr_client"`
  19. }
  20. const configFile = "app/config/review_config.json"
  21. var configInstance *Config
  22. var once sync.Once
  23. // 加载配置文件
  24. func loadConfig() *Config {
  25. data, err := ioutil.ReadFile(configFile)
  26. if err != nil {
  27. log.Fatalf("Failed to read config file: %v", err)
  28. }
  29. var config Config
  30. err = json.Unmarshal(data, &config)
  31. if err != nil {
  32. log.Fatalf("Failed to parse config file: %v", err)
  33. }
  34. auth := basic.NewCredentialsBuilder().
  35. WithAk(config.Ak).
  36. WithSk(config.Sk).
  37. //WithProjectId(projectId).
  38. Build()
  39. client := moderation.NewModerationClient(
  40. moderation.ModerationClientBuilder().
  41. WithRegion(moderationRegion.ValueOf("cn-north-4")).
  42. WithCredential(auth).
  43. Build())
  44. ocrClient := ocr.NewOcrClient(
  45. ocr.OcrClientBuilder().
  46. WithRegion(ocrRegion.ValueOf("cn-north-4")).
  47. WithCredential(auth).
  48. Build())
  49. config.Client = client
  50. config.OcrClient = ocrClient
  51. return &config
  52. }
  53. // 获取配置的单例实例
  54. func GetConfig() *Config {
  55. once.Do(func() {
  56. configInstance = loadConfig()
  57. })
  58. return configInstance
  59. }