tencent cloud

All product documents
Cloud Object Storage
Cross-Bucket Replication
Last updated: 2024-02-02 12:12:57
Cross-Bucket Replication
Last updated: 2024-02-02 12:12:57

Overview

This document provides an overview of APIs and SDK code samples related to cross-bucket replication.
API
Operation
Description
Setting cross-bucket replication
Sets a cross-bucket replication rule for a versioning-enabled bucket
Querying cross-bucket replication
Queries the cross-bucket replication rule of a bucket
Deleting a cross-bucket replication rule
Deletes a cross-bucket replication rule of a bucket

Setting Cross-Bucket Replication

Feature description

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

Method prototype

CosResult PutBucketReplication(const PutBucketReplicationReq& request, PutBucketReplicationResp* response);

Sample request

qcloud_cos::CosConfig config("./config.json");
qcloud_cos::CosAPI cos(config);
std::string bucket_name = "examplebucket-1250000000";
qcloud_cos::PutBucketReplicationReq req(bucket_name);
qcloud_cos::PutBucketReplicationResp resp;

req.SetRole("qcs::cam::uin/100000000001:uin/100000000001"); // Set the role of the request initiator.
qcloud_cos::ReplicationRule rule("", "qcs::cos:ap-guangzhou:uid/1250000000:destinationbucket-1250000000",
"", "", true); // Set the cross-bucket replication rule.
req.AddReplicationRule(rule);

qcloud_cos::CosResult result = cos.PutBucketReplication(req, &resp);

if (result.IsSucc()) {
// Request successful
} else {
// Request failed. You can call the CosResult member functions to output the error information, such as requestID.
}

Parameter description

Parameter
Description
Type
Required
req
Request of the PutBucketReplication operation
PutBucketReplicationReq
Yes
resp
Response of the PutBucketReplication operation
PutBucketReplicationResp
Yes
PutBucketReplicationReq provides the following methods to configure cross-bucket replication:
void SetRole(const std::string& role)
void AddReplicationRule(const ReplicationRule& rule)
void SetReplicationRule(const std::vector<ReplicationRule>& rules)
ReplicationRule is defined as follows:
struct ReplicationRule {
bool m_is_enable;
std::string m_id; // Name of the rule
std::string m_prefix; // Prefix matching policy. It cannot overlap. Otherwise, an error will be returned.
std::string m_dest_bucket; // Destination bucket information
std::string m_dest_storage_class; // Storage class. Enumerated values: `STANDARD`, `STANDARD_IA`.

Querying Cross-Bucket Replication

Feature description

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

Method prototype

CosResult GetBucketReplication(const GetBucketReplicationReq& request, GetBucketReplicationResp* response);

Sample request

qcloud_cos::CosConfig config("./config.json");
qcloud_cos::CosAPI cos(config);
std::string bucket_name = "examplebucket-1250000000";
qcloud_cos::GetBucketReplicationReq req(bucket_name);
qcloud_cos::GetBucketReplicationResp resp;

qcloud_cos::CosResult result = cos.GetBucketReplication(req, &resp);

if (result.IsSucc()) {
// Request successful. You can call the `resp` method to obtain the cross-bucket replication rule.
} else {
// Request failed. You can call the CosResult member functions to output the error information, such as requestID.
}

Parameter description

Parameter
Description
Type
Required
req
Request of the GetBucketReplication operation
GetBucketReplicationReq
Yes
resp
Response of the GetBucketReplication operation
GetBucketReplicationResp
Yes
GetBucketReplicationResp provides the following methods to obtain the cross-bucket replication rules.
std::string GetRole() const;
std::vector<ReplicationRule> GetRules() const;

Deleting Cross-Bucket Replication

Feature description

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

Method prototype

CosResult DeleteBucketReplication(const DeleteBucketReplicationReq& request, DeleteBucketReplicationResp* response);

Sample request

qcloud_cos::CosConfig config("./config.json");
qcloud_cos::CosAPI cos(config);
std::string bucket_name = "examplebucket-1250000000";
qcloud_cos::DeleteBucketReplicationReq req(bucket_name);
qcloud_cos::DeleteBucketReplicationResp resp;

qcloud_cos::CosResult result = cos.DeleteBucketReplication(req, &resp);

if (result.IsSucc()) {
// Request successful
} else {
// Request failed. You can call the CosResult member functions to output the error information, such as requestID.
}

Parameter description

Parameter
Description
Type
Required
req
Request of the DeleteBucketReplication operation
DeleteBucketReplicationReq
Yes
resp
Response of the DeleteBucketReplication operation
DeleteBucketReplicationResp
Yes
Was this page helpful?
You can also Contact Sales or Submit a Ticket for help.
Yes
No

Feedback

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
Hong Kong, China
+852 800 906 020 (Toll Free)
United States
+1 844 606 0804 (Toll Free)
United Kingdom
+44 808 196 4551 (Toll Free)
Canada
+1 888 605 7930 (Toll Free)
Australia
+61 1300 986 386 (Toll Free)
EdgeOne hotline
+852 300 80699
More local hotlines coming soon