Hotlink protection

Last updated: 2023-09-13 11:35:13

Feature Overview

This document provides an overview of APIs and SDK code samples related to bucket referer allowlist or blocklist.
Note
Requires v5.5.0 or later versions.
API
Operation
Description
Setting a bucket referer
Sets a bucket referer allowlist or blocklist
Querying a bucket referer
Queries a bucket referer allowlist or blocklist

Setting a bucket referer

Note

This API (PUT Bucket referer) is used to set the referer allowlist/blocklist for a bucket.

Method prototype

CosResult PutBucketReferer(const PutBucketRefererReq& request, PutBucketRefererResp* response);

Sample Request

qcloud_cos::CosConfig config("./config.json");
qcloud_cos::CosAPI cos(config);
std::string bucket_name = "examplebucket-1250000000"; // Replaced with the bucket name

qcloud_cos::PutBucketRefererReq req(bucket_name);
qcloud_cos::PutBucketRefererResp resp;
// Construct the request as needed
req.SetStatus("Enabled");
req.SetRefererType("White-List");
req.AddDomain("test1.com");
req.AddDomain("test2.com");
qcloud_cos::CosResult result = cos.PutBucketReferer(req, &resp);
if (result.IsSucc()) {
// Request successful
} else {
// In case of request failure, call the member function of CosResult to output error information, such as requestID, etc.
}

Description

Category
ParameterDescription
Local Disk Types
Required
req
Request of the PutBucketReferer operation
PutBucketRefererReq
Required
resp
Response of the PutBucketReferer operation
PutBucketRefererResp
Required

Response description

Querying a bucket referer

Note

This API (GET Bucket referer) is used to query the referer allowlist/blocklist of a bucket.

Method prototype

CosResult GetBucketReferer(const GetBucketRefererReq& request, GetBucketRefererResp* response);

Sample Request

qcloud_cos::CosConfig config("./config.json");
qcloud_cos::CosAPI cos(config);
std::string bucket_name = "examplebucket-1250000000"; // Replaced with the bucket name

qcloud_cos::GetBucketRefererReq req(bucket_name);
qcloud_cos::GetBucketRefererResp resp;
qcloud_cos::CosResult result = cos.GetBucketReferer(req, &resp);
if (result.IsSucc()) {
// Upon successful request, obtain referer configuration
std::cout << "Status:" << resp.GetStatus() << std::endl;
std::cout << "RefererType:" << resp.GetRefererType() << std::endl;
for (auto& domain : resp.GetDomainList()) {
std::cout << "Domain:" << domain << std::endl;
}
std::cout << "EmptyReferConfiguration:" << resp.GetEmptyReferConf() << std::endl;
} else {
// In case of request failure, call the member function of CosResult to output error information, such as requestID, etc.
}

Description

Category
ParameterDescription
Local Disk Types
Required
req
Request of the GetBucketReferer operation
GetBucketRefererReq
Required
resp
Response of the GetBucketReferer operation
GetBucketRefererResp
Required

Response description