ObjectPutHeaderOptions
的XCosServerSideEncryption
成员来完成。// 下载对象,下载对象需要用户提供密钥 // 下载对象,下载对象需要用户提供密钥 package mainimport ("context""errors""io/ioutil""net/http""net/url""os""strings""github.com/tencentyun/cos-go-sdk-v5""github.com/tencentyun/cos-go-sdk-v5/debug")func main() {// 替换成您的<Bucketname-APPID>u, _ := url.Parse("https://<Bucketname-APPID>.cos.ap-guangzhou.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/37140?from_cn_redirect=1SecretKey: os.Getenv("SECRETKEY"), // 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参考见 https://www.tencentcloud.com/document/product/598/37140?from_cn_redirect=1Transport: &debug.DebugRequestTransport{RequestHeader: true,// Notice when put a large file and set need the request body, might happend out of memory error.RequestBody: false,ResponseHeader: true,ResponseBody: true,},},})opt := &cos.ObjectPutOptions{ObjectPutHeaderOptions: &cos.ObjectPutHeaderOptions{ContentType: "text/html",XCosServerSideEncryption: "AES256",},ACLHeaderOptions: &cos.ACLHeaderOptions{},}name := "PutFromGoWithSSE-COS"content := "Put Object From Go With SSE-COS"f := strings.NewReader(content)_, err := c.Object.Put(context.Background(), name, f, opt)if err != nil {panic(err)}// 下载对象getopt := &cos.ObjectGetOptions{}var resp *cos.Responseresp, err = c.Object.Get(context.Background(), name, getopt)if err != nil {panic(err)}// 验证bodyBytes, _ := ioutil.ReadAll(resp.Body)bodyContent := string(bodyBytes)if bodyContent != content {panic(errors.New("Content inconsistency"))}}
ObjectPutHeaderOptions
的XCosSSECustomer*
成员来完成。package mainimport ("context""net/url""os""strings""errors""io/ioutil""net/http""github.com/tencentyun/cos-go-sdk-v5""github.com/tencentyun/cos-go-sdk-v5/debug")func main() {// 替换成您的<Bucketname-APPID>u, _ := url.Parse("https://<Bucketname-APPID>.cos.ap-guangzhou.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/37140?from_cn_redirect=1SecretKey: os.Getenv("SECRETKEY"), // 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://www.tencentcloud.com/document/product/598/37140?from_cn_redirect=1Transport: &debug.DebugRequestTransport{RequestHeader: true,// Notice when put a large file and set need the request body, might happend out of memory error.RequestBody: false,ResponseHeader: true,ResponseBody: true,},},})opt := &cos.ObjectPutOptions{ObjectPutHeaderOptions: &cos.ObjectPutHeaderOptions{ContentType: "text/html",XCosSSECustomerAglo: "AES256",XCosSSECustomerKey: "MDEyMzQ1Njc4OUFCQ0RFRjAxMjM0NTY3ODlBQkNERUY=",XCosSSECustomerKeyMD5: "U5L61r7jcwdNvT7frmUG8g==",},ACLHeaderOptions: &cos.ACLHeaderOptions{},}name := "PutFromGoWithSSE-C"content := "Put Object From Go With SSE-C"f := strings.NewReader(content)_, err := c.Object.Put(context.Background(), name, f, opt)if err != nil {panic(err)}// 下载对象,下载对象需要用户提供密钥getopt := &cos.ObjectGetOptions{XCosSSECustomerAglo: "AES256",XCosSSECustomerKey: "MDEyMzQ1Njc4OUFCQ0RFRjAxMjM0NTY3ODlBQkNERUY=",XCosSSECustomerKeyMD5: "U5L61r7jcwdNvT7frmUG8g==",}var resp *cos.Responseresp, err = c.Object.Get(context.Background(), name, getopt)if err != nil {panic(err)}// 验证bodyBytes, _ := ioutil.ReadAll(resp.Body)bodyContent := string(bodyBytes)if bodyContent != content {panic(errors.New("Content inconsistency"))}}
本页内容是否解决了您的问题?