go-cos
腾讯云对象存储服务 COS(Cloud Object Storage) Go SDK(API 版本:V5 版本的 XML API)。
Install
go get -u github.com/mozillazg/go-cos
推荐使用 go mod 之类的技术指定使用的 go-cos 包版本号。
Usage
package main
import (
"context"
"fmt"
"io/ioutil"
"net/http"
"net/url"
"os"
"github.com/mozillazg/go-cos"
)
func main() {
b, _ := cos.NewBaseURL("https://<bucket>-<appid>.cos.<region>.myqcloud.com")
c := cos.NewClient(b, &http.Client{
Transport: &cos.AuthorizationTransport{
SecretID: os.Getenv("COS_SECRETID"),
SecretKey: os.Getenv("COS_SECRETKEY"),
},
})
name := "test/hello.txt"
resp, err := c.Object.Get(context.Background(), name, nil)
if err != nil {
panic(err)
}
defer resp.Body.Close()
bs, _ := ioutil.ReadAll(resp.Body)
fmt.Printf("%s\n", string(bs))
}
备注:
- SDK 不会自动设置超时时间,用户根据需要设置合适的超时时间(比如,设置
http.Client
的 Timeout
字段或者
Transport
字段之类的)或在需要时实现所需的超时机制(比如,通过 context
包实现)。 - 所有的 API 在 _example 目录下都有对应的使用示例(示例程序中用到的
debug
包只是调试用的不是必需的依赖)。
TODO
Service API:
Bucket API:
Object API:
其他功能: