调用PutCname接口为某个存储空间(Bucket)绑定自定义域名。

请求语法

POST /?cname&comp=add HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Content-Type: application/xml
Content-Length: 186
Date: GMT Date
Authorization: SignatureValue
<BucketCnameConfiguration>
  <Cname>
    <Domain>example.com</Domain>
  </Cname>
</BucketCnameConfiguration>

请求头

此接口仅包含公共请求头。更多信息,请参见公共请求头(Common Request Headers)

请求元素

名称 类型 是否必选 示例值 描述
BucketCnameConfiguration 容器 不涉及 Cname配置的容器。

父节点:无

子节点:Cname

Cname 容器 不涉及 Cname信息的容器。

父节点:BucketCnameConfiguration

子节点:Domain

Domain 字符串 example.com 自定义域名。

父节点:Cname

子节点:无

示例

  • 请求示例
    POST /?cname&comp=add HTTP/1.1
    Host: oss-example.oss-cn-hangzhou.aliyuncs.com
    Content-Type: application/xml
    Content-Length: 186
    Date: Thu, 24 Sep 2015 15:39:12 GMT
    Authorization: OSS qn6qrrqxo2oawuk53otf****:KU5h8YMUC78M30dXqf3JxrTZ****
    <BucketCnameConfiguration>
      <Cname>
        <Domain>example.com</Domain>
      </Cname>
    </BucketCnameConfiguration>
  • 返回示例
    content-length: 0
    x-oss-console-auth: success
    server: AliyunOSS
    x-oss-server-time: 980
    connection: keep-alive
    x-oss-request-id: 5C1B138A109F4E405B2D
    date: Wed, 15 Sep 2021 03:33:37 GMT

错误码

错误码 HTTP状态码 描述
InvalidArgument 400 Cname格式错误,您可以在返回XML中查看具体错误字段和原因。
NeedVerifyDomainOwnership 403 未验证域名所有权。

验证域名所有权的步骤说明如下:

  1. 调用CreateCnameToken接口创建域名所有权验证所需的CnameToken。
    说明 CnameToken默认在创建完成后12小时内过期。如果在CnameToken过期时间内重复创建CnameToken,则返回已存在的CnameToken。
  2. 在您的域名服务商处添加TXT记录。

    例如,您需要为自定义域名example.com添加TXT记录。添加记录时,记录类型选择TXT、主机记录需填写_dnsauth.example、记录值填写步骤1返回的CnameToken,其他参数保留默认配置。具体步骤,请参见手动添加Cname记录

    说明 添加的TXT记录需等待几分钟后生效。
  3. 调用PutCname接口绑定自定义域名。
CnameDenied 403 域名已被占用。
CnameIsForbidden 403 该域名为OSS内部保留域名,无法绑定。
CnameIsRisk 403 该域名为存在较高风险,无法绑定。
NoSuchCnameInRecord 404 域名未备案。关于备案域名的具体步骤,请参见什么是阿里云域名服务
CnameAlreadyExists 409 返回此错误的可能原因如下:
  • 该域名已绑定至当前账号下的另一个Bucket。

    问题现象:返回错误信息中的CnameType为CNAME_OSS。

  • 该域名是图片处理域名。

    问题现象:返回错误信息中的CnameType为CNAME_IMG。

针对以上问题,您需要解除域名绑定。具体步骤,请参见解除域名绑定