go get -u github.com/tencentyun/cos-go-sdk-v5
func NewClient(uri *BaseURL, httpClient *http.Client) *Client
// BaseURL 访问各 API 所需的基础 URLtype BaseURL struct {// 访问 bucket, object 相关 API 的基础 URL(不包含 path 部分): https://examplebucket-1250000000.cos.<Region>.myqcloud.comBucketURL *url.URL// 访问 service API 的基础 URL(不包含 path 部分): https://cos.<Region>.myqcloud.comServiceURL *url.URL// 访问 Batch API 的基础 URL (不包含 path 部分): https://<UIN>.cos-control.<Region>.myqcloud.comBatchURL *url.URL// 访问 CI 的基础 URL (不包含 path 部分): https://examplebucket-1250000000.ci.<Region>.myqcloud.comCIURL *url.URL}
参数名称 | 参数描述 | 类型 | 是否必填 |
BucketURL | 访问 bucket, object 相关 API 的基础 URL(不包含 path 部分) | string | 是 |
ServiceURL | 访问 service API 的基础 URL(不包含 path 部分) | string | 否 |
BatchURL | 访问 Batch API 的基础 URL (不包含 path 部分) | string | 否 |
CIURL | 访问 CI 的基础 URL (不包含 path 部分) | string | 否 |
// 将 examplebucket-1250000000 和 COS_REGION 修改为用户真实的信息// 存储桶名称,由 bucketname-appid 组成,appid 必须填入,可以在 COS 控制台查看存储桶名称。https://console.tencentcloud.com/cos5/bucket// COS_REGION 可以在控制台查看,https://console.tencentcloud.com/cos5/bucket, 关于地域的详情见 https://www.tencentcloud.com/document/product/436/6224u, _ := url.Parse("https://examplebucket-1250000000.cos.COS_REGION.myqcloud.com")// 用于 Get Service 查询,默认全地域 service.cos.myqcloud.comsu, _ := url.Parse("https://cos.COS_REGION.myqcloud.com")b := &cos.BaseURL{BucketURL: u, ServiceURL: su}// 1.永久密钥client := cos.NewClient(b, &http.Client{Transport: &cos.AuthorizationTransport{SecretID: os.Getenv("SECRETID"), // 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参考 https://www.tencentcloud.com/document/product/598/32675SecretKey: os.Getenv("SECRETKEY"), // 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参考 https://www.tencentcloud.com/document/product/598/32675},})
// 将 examplebucket-1250000000 和 COS_REGION 修改为真实的信息// 存储桶名称,由 bucketname-appid 组成,appid 必须填入,可以在 COS 控制台查看存储桶名称。https://console.tencentcloud.com/cos5/bucket// COS_REGION 可以在控制台查看,https://console.tencentcloud.com/cos5/bucket, 关于地域的详情见 https://www.tencentcloud.com/document/product/436/6224u, _ := url.Parse("https://examplebucket-1250000000.cos.COS_REGION.myqcloud.com")b := &cos.BaseURL{BucketURL: u}// 2.临时密钥client := cos.NewClient(b, &http.Client{Transport: &cos.AuthorizationTransport{// 如果使用临时密钥需要填入,临时密钥生成和使用指引参见 https://www.tencentcloud.com/document/product/436/14048SecretID: "SECRETID",SecretKey: "SECRETKEY",SessionToken: "SECRETTOKEN",},})if client != nil {// 调用 COS 请求}
// 使用全球加速域名访问COSu, _ := url.Parse("http://<BucketName-APPID>.cos.accelerate.myqcloud.com")b := &cos.BaseURL{BucketURL: u}// 2.临时密钥client := cos.NewClient(b, &http.Client{Transport: &cos.AuthorizationTransport{// 如果使用临时密钥需要填入,临时密钥生成和使用指引参见 https://www.tencentcloud.com/document/product/436/14048SecretID: "SECRETID",SecretKey: "SECRETKEY",SessionToken: "SECRETTOKEN",},})
// 将 examplebucket-1250000000 和 COS_REGION 修改为真实的信息// 存储桶名称,由 bucketname-appid 组成,appid必须填入,可以在COS控制台查看存储桶名称。https://console.tencentcloud.com/cos5/bucket// COS_REGION 可以在控制台查看,https://console.tencentcloud.com/cos5/bucket, 关于地域的详情见 https://www.tencentcloud.com/document/product/436/6224u, _ := url.Parse("https://examplebucket-1250000000.cos.COS_REGION.myqcloud.com")b := &cos.BaseURL{BucketURL: u}// 2.临时密钥client := cos.NewClient(b, &http.Client{Transport: &cos.AuthorizationTransport{// 如果使用临时密钥需要填入,临时密钥生成和使用指引参见 https://www.tencentcloud.com/document/product/436/14048SecretID: "SECRETID",SecretKey: "SECRETKEY",SessionToken: "SECRETTOKEN",},})// 关闭 CRC64 校验client.Conf.EnableCRC = false
package mainimport ("context""net/http""net/url""os""github.com/tencentyun/cos-go-sdk-v5")func main() {// 将 examplebucket-1250000000 和 COS_REGION 修改为真实的信息// 存储桶名称,由 bucketname-appid 组成,appid 必须填入,可以在 COS 控制台查看存储桶名称。https://console.tencentcloud.com/cos5/bucket// COS_REGION 可以在控制台查看,https://console.tencentcloud.com/cos5/bucket, 关于地域的详情见 https://www.tencentcloud.com/document/product/436/6224u, _ := url.Parse("https://examplebucket-1250000000.cos.COS_REGION.myqcloud.com")b := &cos.BaseURL{BucketURL: u}c := cos.NewClient(b, &http.Client{Transport: &cos.AuthorizationTransport{SecretID: os.Getenv("SECRETID"), // 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参考 https://www.tencentcloud.com/document/product/598/32675SecretKey: os.Getenv("SECRETKEY"), // 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参考 https://www.tencentcloud.com/document/product/598/32675},})_, err := c.Bucket.Put(context.Background(), nil)if err != nil {panic(err)}}
package mainimport ("context""fmt""net/http""os""github.com/tencentyun/cos-go-sdk-v5")func main() {c := cos.NewClient(nil, &http.Client{Transport: &cos.AuthorizationTransport{SecretID: os.Getenv("SECRETID"), // 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参考 https://www.tencentcloud.com/document/product/598/32675SecretKey: os.Getenv("SECRETKEY"), // 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参考 https://www.tencentcloud.com/document/product/598/32675},})s, _, err := c.Service.Get(context.Background())if err != nil {panic(err)}for _, b := range s.Buckets {fmt.Printf("%#v\\n", b)}}
package mainimport ("context""net/http""net/url""os""strings""github.com/tencentyun/cos-go-sdk-v5")func main() {// 将 examplebucket-1250000000 和 COS_REGION 修改为真实的信息// 存储桶名称,由 bucketname-appid 组成,appid 必须填入,可以在 COS 控制台查看存储桶名称。https://console.tencentcloud.com/cos5/bucket// COS_REGION 可以在控制台查看,https://console.tencentcloud.com/cos5/bucket, 关于地域的详情见 https://www.tencentcloud.com/document/product/436/6224u, _ := url.Parse("https://examplebucket-1250000000.cos.COS_REGION.myqcloud.com")b := &cos.BaseURL{BucketURL: u}c := cos.NewClient(b, &http.Client{Transport: &cos.AuthorizationTransport{SecretID: os.Getenv("SECRETID"), // 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参考 https://www.tencentcloud.com/document/product/598/32675SecretKey: os.Getenv("SECRETKEY"), // 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参考 https://www.tencentcloud.com/document/product/598/32675},})// 对象键(Key)是对象在存储桶中的唯一标识。// 例如,在对象的访问域名 `examplebucket-1250000000.cos.COS_REGION.myqcloud.com/test/objectPut.go` 中,对象键为 test/objectPut.goname := "test/objectPut.go"// 1.通过字符串上传对象f := strings.NewReader("test")_, err := c.Object.Put(context.Background(), name, f, nil)if err != nil {panic(err)}// 2.通过本地文件上传对象_, err = c.Object.PutFromFile(context.Background(), name, "../test", nil)if err != nil {panic(err)}// 3.通过文件流上传对象fd, err := os.Open("./test")if err != nil {panic(err)}defer fd.Close()_, err = c.Object.Put(context.Background(), name, fd, nil)if err != nil {panic(err)}}
package mainimport ("context""fmt""net/http""net/url""os""github.com/tencentyun/cos-go-sdk-v5")func main() {// 将 examplebucket-1250000000 和 COS_REGION 修改为真实的信息// 存储桶名称,由 bucketname-appid 组成,appid 必须填入,可以在 COS 控制台查看存储桶名称。https://console.tencentcloud.com/cos5/bucket// COS_REGION 可以在控制台查看,https://console.tencentcloud.com/cos5/bucket, 关于地域的详情见 https://www.tencentcloud.com/document/product/436/6224u, _ := url.Parse("https://examplebucket-1250000000.cos.COS_REGION.myqcloud.com")b := &cos.BaseURL{BucketURL: u}c := cos.NewClient(b, &http.Client{Transport: &cos.AuthorizationTransport{SecretID: os.Getenv("SECRETID"), // 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参考 https://www.tencentcloud.com/document/product/598/32675SecretKey: os.Getenv("SECRETKEY"), // 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参考 https://www.tencentcloud.com/document/product/598/32675},})opt := &cos.BucketGetOptions{Prefix: "test",MaxKeys: 3,}v, _, err := c.Bucket.Get(context.Background(), opt)if err != nil {panic(err)}for _, c := range v.Contents {fmt.Printf("%s, %d\\n", c.Key, c.Size)}}
package mainimport ("context""fmt""io/ioutil""net/http""net/url""os""github.com/tencentyun/cos-go-sdk-v5")func main() {// 将 examplebucket-1250000000 和 COS_REGION 修改为真实的信息// 存储桶名称,由 bucketname-appid 组成,appid 必须填入,可以在 COS 控制台查看存储桶名称。https://console.tencentcloud.com/cos5/bucket// COS_REGION 可以在控制台查看,https://console.tencentcloud.com/cos5/bucket, 关于地域的详情见 https://www.tencentcloud.com/document/product/436/6224u, _ := url.Parse("https://examplebucket-1250000000.cos.COS_REGION.myqcloud.com")b := &cos.BaseURL{BucketURL: u}c := cos.NewClient(b, &http.Client{Transport: &cos.AuthorizationTransport{SecretID: os.Getenv("SECRETID"), // 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参考 https://www.tencentcloud.com/document/product/598/32675SecretKey: os.Getenv("SECRETKEY"), // 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参考 https://www.tencentcloud.com/document/product/598/32675},})// 1.通过响应体获取对象name := "test/objectPut.go"resp, err := c.Object.Get(context.Background(), name, nil)if err != nil {panic(err)}bs, _ := ioutil.ReadAll(resp.Body)resp.Body.Close()fmt.Printf("%s\\n", string(bs))// 2.获取对象到本地文件_, err = c.Object.GetToFile(context.Background(), name, "exampleobject", nil)if err != nil {panic(err)}}
package mainimport ("context""net/http""net/url""os""github.com/tencentyun/cos-go-sdk-v5")func main() {// 将 examplebucket-1250000000 和 COS_REGION 修改为真实的信息// 存储桶名称,由 bucketname-appid 组成,appid 必须填入,可以在 COS 控制台查看存储桶名称。https://console.tencentcloud.com/cos5/bucket// COS_REGION 可以在控制台查看,https://console.tencentcloud.com/cos5/bucket, 关于地域的详情见 https://www.tencentcloud.com/document/product/436/6224u, _ := url.Parse("https://examplebucket-1250000000.cos.COS_REGION.myqcloud.com")b := &cos.BaseURL{BucketURL: u}c := cos.NewClient(b, &http.Client{Transport: &cos.AuthorizationTransport{SecretID: os.Getenv("SECRETID"), // 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参考 https://www.tencentcloud.com/document/product/598/32675SecretKey: os.Getenv("SECRETKEY"), // 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参考 https://www.tencentcloud.com/document/product/598/32675},})name := "test/objectPut.go"_, err := c.Object.Delete(context.Background(), name)if err != nil {panic(err)}}
本页内容是否解决了您的问题?