控制台指南

最佳实践

开发者指南

API 文档

SDK 文档

自定义域名

最近更新时间:2021-11-12 17:34:32

简介

本文档提供关于自定义域名的 API 概览以及 SDK 示例代码。

API 操作名 操作描述
PUT Bucket domain 设置自定义域名 设置存储桶的自定义域名信息
GET Bucket domain 查询自定义域名 查询存储桶的自定义域名信息

SDK API 参考

SDK 所有接口的具体参数与方法说明,请参考 SDK API

设置自定义域名

功能说明

PUT Bucket domain 用于为存储桶配置自定义域名。

示例代码

Objective-C

QCloudPutBucketDomainRequest *req = [QCloudPutBucketDomainRequest new];

// 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket
req.bucket = @"examplebucket-1250000000";

QCloudDomainConfiguration *config = [QCloudDomainConfiguration new];
QCloudDomainRule *rule = [QCloudDomainRule new];

// 源站状态,可选 QCloudDomainStatueEnabled、 QCloudDomainStatueDisabled
rule.status = QCloudDomainStatueEnabled;
// 域名信息
rule.name = @"www.baidu.com";

// 替换已存在的配置、有效值CNAME/TXT 填写则强制校验域名所有权之后,再下发配置
rule.replace = QCloudCOSDomainReplaceTypeTxt;
rule.type = QCloudCOSDomainTypeRest;

// 规则描述集合的数组
config.rules = @[rule];

// 域名配置的规则
req.domain  = config;

[req setFinishBlock:^(id outputObject, NSError *error) {
    // outputObject 包含所有的响应 http 头部
    NSDictionary* info = (NSDictionary *) outputObject;

}];
[[QCloudCOSXMLService defaultCOSXML]PutBucketDomain:req];

说明:

更多完整示例,请前往 GitHub 查看。

Swift

let req = QCloudPutBucketDomainRequest.init();

// 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket
req.bucket = "examplebucket-1250000000";

let config = QCloudDomainConfiguration.init();
let rule = QCloudDomainRule.init();
// 开启状态,可选 .enabled, .disabled
rule.status = .enabled;
rule.name = "www.baidu.com";

// 替换已存在的配置、有效值CNAME/TXT 填写则强制校验域名所有权之后,再下发配置
rule.replace = .txt;
rule.type = .rest;

// 规则描述集合的数组
config.rules = [rule];

// 域名配置的规则
req.domain = config;
req.finishBlock = {(result,error) in
    if let result = result {
        // result 包含响应的 header 信息
    } else {
        print(error!);
    }
}
QCloudCOSXMLService.defaultCOSXML().putBucketDomain(req);

说明:

更多完整示例,请前往 GitHub 查看。

返回错误码说明

该请求可能会发生的一些常见的特殊错误如下:

状态码 说明
HTTP 409 Conflict 该域名记录已存在,且请求中没有设置强制覆盖。或者该域名记录不存在,且请求中设置了强制覆盖
HTTP 451 Unavailable For Legal Reasons 该域名是中国境内域名,并且没有备案

查询自定义域名

功能说明

GET Bucket domain 用于查询存储桶的自定义域名信息。

示例代码

Objective-C

QCloudGetBucketDomainRequest *getReq =  [QCloudGetBucketDomainRequest new];

// 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket
getReq.bucket = @"examplebucket-1250000000";

[getReq setFinishBlock:^(QCloudDomainConfiguration * _Nonnull result,
                         NSError * _Nonnull error) {
    // 规则描述集合的数组
    NSArray *rules = result.rules;
}];
[[QCloudCOSXMLService defaultCOSXML]GetBucketDomain:getReq];

说明:

更多完整示例,请前往 GitHub 查看。

Swift

let req = QCloudGetBucketDomainRequest.init();

// 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket
req.bucket = "examplebucket-1250000000";

req.finishBlock = {(result,error) in
    if let result = result {
        // result 包含源站信息
    } else {
        print(error!);
    }
}
QCloudCOSXMLService.defaultCOSXML().getBucketDomain(req);

说明:

更多完整示例,请前往 GitHub 查看。

返回参数说明

参数名称 描述 类型
x-cos-domain-txt-verification 域名校验信息,该字段是一个 MD5 校验值,原串格式为:cos[Region][BucketName-APPID][BucketCreateTime],其中 Region 为存储桶所在地域,BucketCreateTime 为存储桶 GMT 创建时间 String
目录