cos.go 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. package config
  2. import (
  3. "github.com/sirupsen/logrus"
  4. "github.com/tencentyun/cos-go-sdk-v5"
  5. "net/http"
  6. "net/url"
  7. "os"
  8. )
  9. var client *cos.Client
  10. var chatLogClient *cos.Client
  11. func GetCOSClient() *cos.Client {
  12. if client == nil {
  13. InitCOSClient()
  14. }
  15. return client
  16. }
  17. func GetChatLogCOSClient() *cos.Client {
  18. if chatLogClient == nil {
  19. InitChatLogCOSClient()
  20. }
  21. return chatLogClient
  22. }
  23. func InitCOSClient() {
  24. if os.Getenv("COS_BUCKETURL") == "" {
  25. logrus.Warn("没有配置cos,跳过初始化...")
  26. return
  27. }
  28. u, _ := url.Parse(os.Getenv("COS_BUCKETURL"))
  29. // 用于 Get Service 查询,默认全地域 service.tx_cos.myqcloud.com
  30. //su, _ := url.Parse("https://cos.ap-nanjing.myqcloud.com")
  31. b := &cos.BaseURL{BucketURL: u}
  32. // 1.永久密钥
  33. client = cos.NewClient(b, &http.Client{
  34. Transport: &cos.AuthorizationTransport{
  35. // 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参考 https://cloud.tencent.com/document/product/598/37140
  36. SecretID: os.Getenv("COS_SECRETID"),
  37. // 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参考 https://cloud.tencent.com/document/product/598/37140
  38. SecretKey: os.Getenv("COS_SECRETKEY"),
  39. },
  40. })
  41. }
  42. func InitChatLogCOSClient() {
  43. if os.Getenv("COS_CHATLOG_BUCKETURL") == "" {
  44. logrus.Warn("没有配置cos,跳过初始化...")
  45. return
  46. }
  47. u, _ := url.Parse(os.Getenv("COS_CHATLOG_BUCKETURL"))
  48. // 用于 Get Service 查询,默认全地域 service.tx_cos.myqcloud.com
  49. //su, _ := url.Parse("https://cos.ap-nanjing.myqcloud.com")
  50. b := &cos.BaseURL{BucketURL: u}
  51. // 1.永久密钥
  52. chatLogClient = cos.NewClient(b, &http.Client{
  53. Transport: &cos.AuthorizationTransport{
  54. // 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参考 https://cloud.tencent.com/document/product/598/37140
  55. SecretID: os.Getenv("COS_SECRETID"),
  56. // 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参考 https://cloud.tencent.com/document/product/598/37140
  57. SecretKey: os.Getenv("COS_SECRETKEY"),
  58. },
  59. })
  60. }