tencent cloud

文档反馈

存储桶复制

最后更新时间:2022-01-24 12:21:36

    简介

    本文档提供关于存储桶复制的 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.tencentcloud.com/cos5/bucket
       // 替换为用户的 region,存储桶region可以在COS控制台“存储桶概览”查看 https://console.tencentcloud.com/ ,关于地域的详情见 https://www.tencentcloud.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.tencentcloud.com/cam/capi
               SecretID: os.Getenv("SECRETID"),
               // 环境变量 SECRETKEY 表示用户的 SecretKey,登录访问管理控制台查看密钥,https://console.tencentcloud.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.tencentcloud.com/cos5/bucket
       // 替换为用户的 region,存储桶region可以在COS控制台“存储桶概览”查看 https://console.tencentcloud.com/ ,关于地域的详情见 https://www.tencentcloud.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.tencentcloud.com/cam/capi
               SecretID: os.Getenv("SECRETID"),
               // 环境变量 SECRETKEY 表示用户的 SecretKey,登录访问管理控制台查看密钥,https://console.tencentcloud.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.tencentcloud.com/cos5/bucket
       // 替换为用户的 region,存储桶region可以在COS控制台“存储桶概览”查看 https://console.tencentcloud.com/ ,关于地域的详情见 https://www.tencentcloud.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.tencentcloud.com/cam/capi
               SecretID: os.Getenv("SECRETID"),
               // 环境变量 SECRETKEY 表示用户的 SecretKey,登录访问管理控制台查看密钥,https://console.tencentcloud.com/cam/capi
               SecretKey: os.Getenv("SECRETKEY"),
           },
       })
       _, err := client.Bucket.DeleteBucketReplication(context.Background())
       if err != nil {
           panic(err)
       }
    }
    

    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持