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 |
This API (PUT Bucket replication) is used to set the cross-bucket replication rule for a bucket.
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(){
// 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, visit 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 in the CAM console at https://console.tencentcloud.com/cam/capi.
SecretID: os.Getenv("SECRETID"), // User `SecretId`. We recommend you use a sub-account key and follow the principle of least privilege to reduce risks. For information about how to obtain a sub-account key, visit https://www.tencentcloud.com/document/product/598/37140?from_cn_redirect=1.
// Environment variable `SECRETKEY` refers to the user's `SecretKey`, which can be viewed in the CAM console at https://console.tencentcloud.com/cam/capi.
SecretKey: os.Getenv("SECRETKEY"), // User `SecretKey`. We recommend you use a sub-account key and follow the principle of least privilege to reduce risks. For information about how to obtain a sub-account key, visit https://www.tencentcloud.com/document/product/598/37140?from_cn_redirect=1.
},
})
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)
}
}
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 |
This API (GET Bucket replication) is used to query the cross-bucket replication rule of a bucket.
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(){
// 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, visit 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 in the CAM console at https://console.tencentcloud.com/cam/capi.
SecretID: os.Getenv("SECRETID"), // User `SecretId`. We recommend you use a sub-account key and follow the principle of least privilege to reduce risks. For information about how to obtain a sub-account key, visit https://www.tencentcloud.com/document/product/598/37140?from_cn_redirect=1.
// Environment variable `SECRETKEY` refers to the user's `SecretKey`, which can be viewed in the CAM console at https://console.tencentcloud.com/cam/capi.
SecretKey: os.Getenv("SECRETKEY"), // User `SecretKey`. We recommend you use a sub-account key and follow the principle of least privilege to reduce risks. For information about how to obtain a sub-account key, visit https://www.tencentcloud.com/document/product/598/37140?from_cn_redirect=1.
},
})
_, _, 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
}
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 |
This API (DELETE Bucket replication) is used to delete a cross-bucket replication rule from a bucket.
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(){
// 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, visit 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 in the CAM console at https://console.tencentcloud.com/cam/capi.
SecretID: os.Getenv("SECRETID"), // User `SecretId`. We recommend you use a sub-account key and follow the principle of least privilege to reduce risks. For information about how to obtain a sub-account key, visit https://www.tencentcloud.com/document/product/598/37140?from_cn_redirect=1.
// Environment variable `SECRETKEY` refers to the user's `SecretKey`, which can be viewed in the CAM console at https://console.tencentcloud.com/cam/capi.
SecretKey: os.Getenv("SECRETKEY"), // User `SecretKey`. We recommend you use a sub-account key and follow the principle of least privilege to reduce risks. For information about how to obtain a sub-account key, visit https://www.tencentcloud.com/document/product/598/37140?from_cn_redirect=1.
},
})
_, err := client.Bucket.DeleteBucketReplication(context.Background())
if err != nil{
panic(err)
}
}
Apakah halaman ini membantu?