1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- package config
- import (
- "github.com/sirupsen/logrus"
- "github.com/tencentyun/cos-go-sdk-v5"
- "net/http"
- "net/url"
- "os"
- )
- var client *cos.Client
- var chatLogClient *cos.Client
- func GetCOSClient() *cos.Client {
- if client == nil {
- InitCOSClient()
- }
- return client
- }
- func GetChatLogCOSClient() *cos.Client {
- if chatLogClient == nil {
- InitChatLogCOSClient()
- }
- return chatLogClient
- }
- func InitCOSClient() {
- if os.Getenv("COS_BUCKETURL") == "" {
- logrus.Warn("没有配置cos,跳过初始化...")
- return
- }
- u, _ := url.Parse(os.Getenv("COS_BUCKETURL"))
- // 用于 Get Service 查询,默认全地域 service.tx_cos.myqcloud.com
- //su, _ := url.Parse("https://cos.ap-nanjing.myqcloud.com")
- b := &cos.BaseURL{BucketURL: u}
- // 1.永久密钥
- client = cos.NewClient(b, &http.Client{
- Transport: &cos.AuthorizationTransport{
- // 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参考 https://cloud.tencent.com/document/product/598/37140
- SecretID: os.Getenv("COS_SECRETID"),
- // 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参考 https://cloud.tencent.com/document/product/598/37140
- SecretKey: os.Getenv("COS_SECRETKEY"),
- },
- })
- }
- func InitChatLogCOSClient() {
- if os.Getenv("COS_CHATLOG_BUCKETURL") == "" {
- logrus.Warn("没有配置cos,跳过初始化...")
- return
- }
- u, _ := url.Parse(os.Getenv("COS_CHATLOG_BUCKETURL"))
- // 用于 Get Service 查询,默认全地域 service.tx_cos.myqcloud.com
- //su, _ := url.Parse("https://cos.ap-nanjing.myqcloud.com")
- b := &cos.BaseURL{BucketURL: u}
- // 1.永久密钥
- chatLogClient = cos.NewClient(b, &http.Client{
- Transport: &cos.AuthorizationTransport{
- // 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参考 https://cloud.tencent.com/document/product/598/37140
- SecretID: os.Getenv("COS_SECRETID"),
- // 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参考 https://cloud.tencent.com/document/product/598/37140
- SecretKey: os.Getenv("COS_SECRETKEY"),
- },
- })
- }
|