forked from tencentyun/coscli
/
client.go
executable file
·58 lines (54 loc) · 1.51 KB
/
client.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package util
import (
"net/http"
"github.com/tencentyun/cos-go-sdk-v5"
)
// 根据桶别名,从配置文件中加载信息,创建客户端
func NewClient(config *Config, param *Param, bucketName string) *cos.Client {
secretID := config.Base.SecretID
secretKey := config.Base.SecretKey
secretToken := config.Base.SessionToken
if param.SecretID != "" {
secretID = param.SecretID
}
if param.SecretKey != "" {
secretKey = param.SecretKey
}
if param.SessionToken != "" {
secretToken = param.SessionToken
}
if bucketName == "" { // 不指定 bucket,则创建用于发送 Service 请求的客户端
return cos.NewClient(nil, &http.Client{
Transport: &cos.AuthorizationTransport{
SecretID: secretID,
SecretKey: secretKey,
SessionToken: secretToken,
},
})
} else {
return cos.NewClient(GenURL(config, param, bucketName), &http.Client{
Transport: &cos.AuthorizationTransport{
SecretID: secretID,
SecretKey: secretKey,
SessionToken: secretToken,
},
})
}
}
// 根据函数参数创建客户端
func CreateClient(config *Config, param *Param, bucketIDName string) *cos.Client {
secretID := config.Base.SecretID
secretKey := config.Base.SecretKey
if param.SecretID != "" {
secretID = param.SecretID
}
if param.SecretKey != "" {
secretKey = param.SecretKey
}
return cos.NewClient(CreateURL(bucketIDName, config.Base.Protocol, param.Endpoint), &http.Client{
Transport: &cos.AuthorizationTransport{
SecretID: secretID,
SecretKey: secretKey,
},
})
}