控制台指南

最佳实践

开发者指南

API 文档

SDK 文档

存储桶复制

最近更新时间:2021-12-14 17:01:55

简介

本文档提供关于存储桶复制的 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.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"),
            // 环境变量 SECRETKEY 表示用户的 SecretKey,登录访问管理控制台查看密钥,https://console.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.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"),
            // 环境变量 SECRETKEY 表示用户的 SecretKey,登录访问管理控制台查看密钥,https://console.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.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"),
            // 环境变量 SECRETKEY 表示用户的 SecretKey,登录访问管理控制台查看密钥,https://console.cloud.tencent.com/cam/capi
            SecretKey: os.Getenv("SECRETKEY"),
        },
    })
    _, err := client.Bucket.DeleteBucketReplication(context.Background())
    if err != nil {
        panic(err)
    }
}

目录