本文档提供关于存储桶复制的 API 概览以及 SDK 示例代码。
API | 操作名 | 操作描述 |
---|---|---|
PUT Bucket replication | 设置存储桶复制 | 对已启用版本控制的存储桶配置存储桶复制规则 |
GET Bucket replication | 查询存储桶复制 | 查询存储桶的存储桶复制规则 |
DELETE Bucket replication | 删除存储桶复制 | 删除存储桶的存储桶复制规则 |
设置指定存储桶的存储桶复制规则(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.intl.cloud.tencent.com/cos5/bucket
// 替换为用户的 region,存储桶region可以在COS控制台“存储桶概览”查看 https://console.intl.cloud.tencent.com/ ,关于地域的详情见 https://intl.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.intl.cloud.tencent.com/cam/capi
SecretID: os.Getenv("SECRETID"),
// 环境变量 SECRETKEY 表示用户的 SecretKey,登录访问管理控制台查看密钥,https://console.intl.cloud.tencent.com/cam/capi
SecretKey: os.Getenv("SECRETKEY"),
},
})
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.intl.cloud.tencent.com/cos5/bucket
// 替换为用户的 region,存储桶region可以在COS控制台“存储桶概览”查看 https://console.intl.cloud.tencent.com/ ,关于地域的详情见 https://intl.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.intl.cloud.tencent.com/cam/capi
SecretID: os.Getenv("SECRETID"),
// 环境变量 SECRETKEY 表示用户的 SecretKey,登录访问管理控制台查看密钥,https://console.intl.cloud.tencent.com/cam/capi
SecretKey: os.Getenv("SECRETKEY"),
},
})
_, _, 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.intl.cloud.tencent.com/cos5/bucket
// 替换为用户的 region,存储桶region可以在COS控制台“存储桶概览”查看 https://console.intl.cloud.tencent.com/ ,关于地域的详情见 https://intl.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.intl.cloud.tencent.com/cam/capi
SecretID: os.Getenv("SECRETID"),
// 环境变量 SECRETKEY 表示用户的 SecretKey,登录访问管理控制台查看密钥,https://console.intl.cloud.tencent.com/cam/capi
SecretKey: os.Getenv("SECRETKEY"),
},
})
_, err := client.Bucket.DeleteBucketReplication(context.Background())
if err != nil {
panic(err)
}
}
本页内容是否解决了您的问题?