有奖捉虫:云通信与企业服务文档专题,速来> HOT

简介

本文档提供关于存储桶复制的 API 概览以及 SDK 示例代码。
API
操作名
操作描述
设置存储桶复制
对已启用版本控制的存储桶配置存储桶复制规则
查询存储桶复制
查询存储桶的存储桶复制规则
删除存储桶复制
删除存储桶的存储桶复制规则

设置存储桶复制

功能说明

设置指定存储桶的存储桶复制规则(PUT Bucket replication)。

方法原型

func (s *BucketService) PutBucketReplication(ctx context.Context, opt *PutBucketReplicationOptions) (*Response, error)

请求示例

package main

import (
"context"
"github.com/tencentyun/cos-go-sdk-v5"
"net/http"
"net/url"
"os"
)

func main() {
// 存储桶名称,由 bucketname-appid 组成,appid 必须填入,可以在 COS 控制台查看存储桶名称。 https://console.cloud.tencent.com/cos5/bucket
// 替换为用户的 region,存储桶 region 可以在 COS 控制台“存储桶概览”查看 https://console.cloud.tencent.com/ ,关于地域的详情见 https://cloud.tencent.com/document/product/436/6224 。
u, _ := url.Parse("https://examplebucket-12500000000.cos.ap-guangzhou.myqcloud.com")
b := &cos.BaseURL{BucketURL: u}
client := cos.NewClient(b, &http.Client{
Transport: &cos.AuthorizationTransport{
// 通过环境变量获取密钥
// 环境变量 SECRETID 表示用户的 SecretId,登录访问管理控制台查看密钥,https://console.cloud.tencent.com/cam/capi
SecretID: os.Getenv("SECRETID"), // 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140
// 环境变量 SECRETKEY 表示用户的 SecretKey,登录访问管理控制台查看密钥,https://console.cloud.tencent.com/cam/capi
SecretKey: os.Getenv("SECRETKEY"), // 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140
},
})
opt := &cos.PutBucketReplicationOptions{
// qcs::cam::uin/[UIN]:uin/[Subaccount]
Role: "qcs::cam::uin/100000000001:uin/100000000001",
Rule: []cos.BucketReplicationRule{
{
ID: "1",
// Enabled or Disabled
Status: "Enabled",
Destination: &cos.ReplicationDestination{
// qcs::cos:[Region]::[Bucketname-Appid]
Bucket: "qcs::cos:ap-beijing::destinationbucket-1250000000",
},
},
},
}
_, err := client.Bucket.PutBucketReplication(context.Background(), opt)
if err != nil {
panic(err)
}
}

参数说明

type PutBucketReplicationOptions struct {
Role string
Rule []BucketReplicationRule
}
type BucketReplicationRule struct {
ID string
Status string
Prefix string
Destination *ReplicationDestination
}
type ReplicationDestination struct {
Bucket string
StorageClass string
}
参数名称
描述
类型
PutBucketReplicationOptions
存储桶复制规则
struct
Role
发起者身份标示:qcs::cam::uin/<OwnerUin>:uin/<SubUin>
string
Rule
具体配置信息,最多支持1000个,所有策略只能指向一个目标存储桶
struct
ID
用来标注具体 Rule 的名称
string
Status
标识 Rule 是否生效,枚举值:Enabled, Disabled
string
Prefix
前缀匹配策略,不可重叠,重叠返回错误。前缀匹配根目录为空
string
Destination
目标存储桶信息
struct
Bucket
资源标识符:qcs::cos:[region]::[bucketname-AppId]
string
StorageClass
存储级别,枚举值:STANDARD,STANDARD_IA。更多类型请参见上方 API 概览。默认值:原存储类型
string

查询存储桶复制

功能说明

查询指定存储桶的存储桶复制规则(GET Bucket replication)。

方法原型

func (s *BucketService) GetBucketReplication(ctx context.Context) (*GetBucketReplicationResult, *Response, error)

请求示例

package main

import (
"context"
"github.com/tencentyun/cos-go-sdk-v5"
"net/http"
"net/url"
"os"
)

func main() {
// 存储桶名称,由 bucketname-appid 组成,appid 必须填入,可以在 COS 控制台查看存储桶名称。 https://console.cloud.tencent.com/cos5/bucket
// 替换为用户的 region,存储桶 region 可以在 COS 控制台“存储桶概览”查看 https://console.cloud.tencent.com/ ,关于地域的详情见 https://cloud.tencent.com/document/product/436/6224 。
u, _ := url.Parse("https://examplebucket-12500000000.cos.ap-guangzhou.myqcloud.com")
b := &cos.BaseURL{BucketURL: u}
client := cos.NewClient(b, &http.Client{
Transport: &cos.AuthorizationTransport{
// 通过环境变量获取密钥
// 环境变量 SECRETID 表示用户的 SecretId,登录访问管理控制台查看密钥,https://console.cloud.tencent.com/cam/capi
SecretID: os.Getenv("SECRETID"), // 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140
// 环境变量 SECRETKEY 表示用户的 SecretKey,登录访问管理控制台查看密钥,https://console.cloud.tencent.com/cam/capi
SecretKey: os.Getenv("SECRETKEY"), // 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140
},
})
_, _, err := client.Bucket.GetBucketReplication(context.Background())
if err != nil {
panic(err)
}
}

返回结果说明

type GetBucketReplicationResult struct {
Role string
Rule []BucketReplicationRule
}
type BucketReplicationRule struct {
ID string
Status string
Prefix string
Destination *ReplicationDestination
}
type ReplicationDestination struct {
Bucket string
StorageClass string
}
参数名称
描述
类型
GetBucketReplicationResult
存储桶复制规则
struct
Role
发起者身份标示:qcs::cam::uin/<OwnerUin>:uin/<SubUin>
string
Rule
具体配置信息,最多支持1000个,所有策略只能指向一个目标存储桶
struct
ID
用来标注具体 Rule 的名称
string
Status
标识 Rule 是否生效,枚举值:Enabled,isabled
string
Prefix
前缀匹配策略,不可重叠,重叠返回错误。前缀匹配根目录为空
string
Destination
目标存储桶信息
struct
Bucket
资源标识符:qcs::cos:[region]::[bucketname-AppId]
string
StorageClass
存储级别,枚举值:STANDARD,STANDARD_IA。更多类型请参见上方 API 概览。默认值:原存储类型
string

删除存储桶复制

功能说明

删除指定存储桶的存储桶复制规则(DELETE Bucket replication)。

方法原型

func (s *BucketService) DeleteBucketReplication(ctx context.Context) (*Response, error)

请求示例

package main

import (
"context"
"github.com/tencentyun/cos-go-sdk-v5"
"net/http"
"net/url"
"os"
)

func main() {
// 存储桶名称,由 bucketname-appid 组成,appid 必须填入,可以在 COS 控制台查看存储桶名称。 https://console.cloud.tencent.com/cos5/bucket
// 替换为用户的 region,存储桶 region 可以在 COS 控制台“存储桶概览”查看 https://console.cloud.tencent.com/ ,关于地域的详情见 https://cloud.tencent.com/document/product/436/6224 。
u, _ := url.Parse("https://examplebucket-12500000000.cos.ap-guangzhou.myqcloud.com")
b := &cos.BaseURL{BucketURL: u}
client := cos.NewClient(b, &http.Client{
Transport: &cos.AuthorizationTransport{
// 通过环境变量获取密钥
// 环境变量 SECRETID 表示用户的 SecretId,登录访问管理控制台查看密钥,https://console.cloud.tencent.com/cam/capi
SecretID: os.Getenv("SECRETID"), // 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140
// 环境变量 SECRETKEY 表示用户的 SecretKey,登录访问管理控制台查看密钥,https://console.cloud.tencent.com/cam/capi
SecretKey: os.Getenv("SECRETKEY"), // 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140
},
})
_, err := client.Bucket.DeleteBucketReplication(context.Background())
if err != nil {
panic(err)
}
}