tencent cloud

Feedback

Cross-Bucket Replication

Last updated: 2022-01-24 12:21:36

    Overview

    This document provides an overview of APIs and SDK code samples related to bucket copying.

    API Operation Description
    PUT Bucket replication Setting cross-bucket replication Sets a cross-bucket replication rule for a versioning-enabled bucket
    GET Bucket replication Querying cross-bucket replication Queries the cross-bucket replication rule of a bucket
    DELETE Bucket replication Deleting cross-bucket replication Deletes a cross-bucket replication rule of a bucket

    Setting Cross-Bucket Replication

    Description

    This API (PUT Bucket replication) is used to set the cross-bucket replication rule for a bucket.

    Method prototype

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

    Sample request

    package main
    import (
       "context"
       "github.com/tencentyun/cos-go-sdk-v5"
       "net/http"
       "net/url"
       "os"
    )
    func main() {
       // Bucket name in the format of BucketName-APPID (APPID is required), which can be viewed in the COS console at https://console.tencentcloud.com/cos5/bucket
       // Replace it with your region, which can be viewed in the COS console at https://console.tencentcloud.com/. For more information about regions, see 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{
               // Get the key from environment variables
               // Environment variable `SECRETID` refers to the user's SecretId, which can be viewed at https://console.tencentcloud.com/cam/capi
               SecretID: os.Getenv("SECRETID"),
               // Environment variable `SECRETKEY` refers to the user's SecretId, which can be viewed at 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, 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)
       }
    }
    

    Parameter description

    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
    }
    
    Parameter Description Type
    PutBucketReplicationOptions Cross-bucket replication rules struct
    Role Request initiator identifier, formatted as qcs::cam::uin/<owneruin>:uin/<subuin> string
    Rule Specific configuration. You can set a maximum of 1,000 rules, which should apply to the same destination bucket struct *
    id Name of the Rule String
    Status Rule status identifier. Enumerated values: Enabled, Disabled string
    Prefix Prefix matching policy. Policies cannot overlap; otherwise, an error will be returned. To match the root directory, leave this parameter empty. string
    Destination Destination bucket information struct
    Bucket Resource identifier, formatted as qcs::cos:[region]::[bucketname-AppId] string
    StorageClass Storage class. Enumerated values: STANDARD, STANDARD_IA. For more storage classes, please see the API overview above. Defaults to the storage class of the source bucket. string

    Querying Cross-Bucket Replication

    Description

    This API (GET Bucket replication) is used to query the cross-bucket replication rule of a bucket.

    Method prototype

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

    Sample request

    package main
    import (
       "context"
       "github.com/tencentyun/cos-go-sdk-v5"
       "net/http"
       "net/url"
       "os"
    )
    func main() {
       // Bucket name in the format of BucketName-APPID (APPID is required), which can be viewed in the COS console at https://console.tencentcloud.com/cos5/bucket
       // Replace it with your region, which can be viewed in the COS console at https://console.tencentcloud.com/. For more information about regions, see 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{
               // Get the key from environment variables
               // Environment variable `SECRETID` refers to the user's SecretId, which can be viewed at https://console.tencentcloud.com/cam/capi
               SecretID: os.Getenv("SECRETID"),
               // Environment variable `SECRETKEY` refers to the user's SecretId, which can be viewed at https://console.tencentcloud.com/cam/capi
               SecretKey: os.Getenv("SECRETKEY"),
           },
       })
       _, _, err := client.Bucket.GetBucketReplication(context.Background())
       if err != nil {
           panic(err)
       }
    }
    

    Response description

    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
    }
    
    Parameter Description Type
    GetBucketReplicationResult Cross-bucket replication rules struct
    Role Request initiator identifier, formatted as qcs::cam::uin/<owneruin>:uin/<subuin> string
    Rule Specific configuration. You can set a maximum of 1,000 rules, which should apply to the same destination bucket struct *
    id Name of the Rule String
    Status Rule status identifier. Enumerated values: Enabled, Disabled string
    Prefix Prefix matching policy. Policies cannot overlap; otherwise, an error will be returned. To match the root directory, leave this parameter empty. string
    Destination Destination bucket information struct
    Bucket Resource identifier, formatted as qcs::cos:[region]::[bucketname-AppId] string
    StorageClass Storage class. Enumerated values: STANDARD, STANDARD_IA. For more storage classes, please see the API overview above. Defaults to the storage class of the source bucket. string

    Deleting Cross-Bucket Replication

    Description

    This API (DELETE Bucket replication) is used to delete a cross-bucket replication rule from a bucket.

    Method prototype

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

    Sample request

    package main
    import (
       "context"
       "github.com/tencentyun/cos-go-sdk-v5"
       "net/http"
       "net/url"
       "os"
    )
    func main() {
       // Bucket name in the format of BucketName-APPID (APPID is required), which can be viewed in the COS console at https://console.tencentcloud.com/cos5/bucket
       // Replace it with your region, which can be viewed in the COS console at https://console.tencentcloud.com/. For more information about regions, see 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{
               // Get the key from environment variables
               // Environment variable `SECRETID` refers to the user's SecretId, which can be viewed at https://console.tencentcloud.com/cam/capi
               SecretID: os.Getenv("SECRETID"),
               // Environment variable `SECRETKEY` refers to the user's SecretId, which can be viewed at https://console.tencentcloud.com/cam/capi
               SecretKey: os.Getenv("SECRETKEY"),
           },
       })
       _, err := client.Bucket.DeleteBucketReplication(context.Background())
       if err != nil {
           panic(err)
       }
    }
    

    Contact Us

    Contact our sales team or business advisors to help your business.

    Technical Support

    Open a ticket if you're looking for further assistance. Our Ticket is 7x24 avaliable.

    7x24 Phone Support