全部產品
Search
文件中心

Object Storage Service:調用CreateCnameToken介面建立網域名稱所有權驗證所需的CnameToken

更新時間:Sep 16, 2026

調用CreateCnameToken介面建立網域名稱所有權驗證所需的CnameToken。可通過wildcard參數指定為精確CNAME或泛網域名稱CNAME建立Token。

注意事項

  • CnameToken預設在建立完成後72小時內到期。如果在CnameToken到期時間內重複建立CnameToken,則返回已存在的CnameToken。

  • 對於Agentic Bucket,wildcard參數必選:wildcard=true為泛網域名稱CNAME建立Token,wildcard=false為精確CNAME建立Token,不允許預設或為空白。

  • 普通Bucket為精確CNAME建立Token的調用方式與既有OSS CNAME OpenAPI完全一致,無需引入任何新參數。

請求文法

POST /?cname&comp=token&wildcard=true 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>

要求標頭

此介面僅包含公用要求標頭。更多資訊,請參見公用HTTP頭定義。

請求參數

名稱

類型

是否必選

樣本值

描述

wildcard

字串

普通Bucket:否

Agentic Bucket:是

true

是否為泛網域名稱CNAME建立Token。取值如下:

  • true:為泛網域名稱CNAME建立Token。

  • false:為精確CNAME建立Token。

對於Agentic Bucket,該參數必選,必須顯式傳true或false,不允許預設或為空白。普通Bucket該參數可選,預設為false。

各Bucket類型下wildcard參數的取值規則如下:

Bucket類型

參數預設

wildcard=false

wildcard=true

普通Bucket

允許,為精確CNAME建立Token。

允許,為精確CNAME建立Token。

不允許

Agentic Bucket

不允許

允許,為精確CNAME建立Token。

允許,為泛網域名稱CNAME建立Token。

說明

同一(Bucket,Cname)的Token同時覆蓋精確與泛網域名稱兩個範圍。

請求元素

名稱

類型

是否必選

樣本值

描述

BucketCnameConfiguration

容器

是

不涉及

Cname配置的容器。

父節點:無

子節點:Cname

Cname

容器

是

不涉及

Cname資訊的容器。

父節點:BucketCnameConfiguration

子節點:Domain

Domain

字串

是

example.com

自訂網域名。為精確CNAME建立Token時傳入完整網域名稱,例如console.example.com;為泛網域名稱CNAME建立Token時傳入泛網域名稱基礎域(不含*.首碼),例如example.com。

父節點:Cname

子節點:無

等冪語義

針對該CNAME是否已綁定到當前Bucket,CreateCnameToken的等冪語義因Bucket類型而異:

  • 普通Bucket:該CNAME已被當前Bucket綁定(任一非刪除狀態)時,返回NoNeedCreateCnameToken,無需繼續建立Token。

  • Agentic Bucket:僅當該基礎網域名稱已被當前AgenticBucket綁定同類型的CNAME時,才返回NoNeedCreateCnameToken。

響應元素

名稱

類型

樣本值

描述

CnameToken

容器

不涉及

CnameToken的容器。

父節點:無

子節點:Bucket、Cname、Token和ExpireTime

Bucket

字串

examplebucket

綁定Cname的Bucket名稱。

父節點:CnameToken

子節點:無

Cname

字串

example.com

綁定的Cname名稱。

父節點:CnameToken

子節點:無

Token

字串

be1d49d863dea9ffeff3df7d6455****

OSS返回的CnameToken。

父節點:CnameToken

子節點:無

ExpireTime

字串

Wed, 23 Feb 2022 21:16:37 GMT

CnameToken的到期時間。

父節點:CnameToken

子節點:無

樣本

  • 請求樣本

    • 為普通Bucket建立CnameToken

      POST /?cname&comp=token HTTP/1.1
      Host: oss-example.oss-cn-hangzhou.aliyuncs.com
      Content-Type: application/xml
      Content-Length: 186
      Date: Thu, 17 Apr 2025 15:39:12 GMT
      Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
      
      <BucketCnameConfiguration>
        <Cname>
          <Domain>example.com</Domain>
        </Cname>
      </BucketCnameConfiguration>
    • 為Agentic Bucket的泛網域名稱CNAME建立CnameToken

      POST /?cname&comp=token&wildcard=true HTTP/1.1
      Host: myab-$uid-$region-ab-apsr.oss-cn-hangzhou.aliyuncs.com
      Content-Type: application/xml
      Content-Length: 186
      Date: Thu, 17 Apr 2025 15:39:12 GMT
      Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
      
      <BucketCnameConfiguration>
        <Cname>
          <Domain>example.com</Domain>
        </Cname>
      </BucketCnameConfiguration>
    • 為Agentic Bucket的精確CNAME建立CnameToken

      POST /?cname&comp=token&wildcard=false HTTP/1.1
      Host: myab-$uid-$region-ab-apsr.oss-cn-hangzhou.aliyuncs.com
      Content-Type: application/xml
      Content-Length: 186
      Date: Thu, 17 Apr 2025 15:39:12 GMT
      Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
      
      <BucketCnameConfiguration>
        <Cname>
          <Domain>console.example.com</Domain>
        </Cname>
      </BucketCnameConfiguration>
  • 返回樣本

    • CnameToken建立成功

      HTTP/1.1 200 OK
      x-oss-request-id: 5C1B138A109F4E405B2D
      Date: Mon, 26 Jul 2021 13:08:38 GMT
      Content-Length: 118
      Content-Type: application/xml
      Connection: keep-alive
      Server: AliyunOSS
      <?xml version="1.0" encoding="UTF-8"?>
      <CnameToken>
        <Bucket>myab-$uid-$region-ab-apsr</Bucket>
        <Cname>example.com</Cname>
        <Token>be1d49d863dea9ffeff3df7d6455****</Token>
        <ExpireTime>Fri, 01 Aug 2026 03:00:00 GMT</ExpireTime>
      </CnameToken>
    • CnameToken數量超出限制

      HTTP/1.1 400 Bad Request
      x-oss-request-id: 5C1B138A109F4E405B2D
      Date: Mon, 26 Jul 2021 13:08:38 GMT
      Content-Length: 118
      Content-Type: application/xml
      Connection: keep-alive
      Server: AliyunOSS
      <?xml version="1.0" encoding="UTF-8"?>
      <Error>
        <Code>TooManyCnameToken</Code>
        <Message>You have attempted to create more cname token than allowed.</Message>
        <RequestId>6215FD21DA0E27393F004E9E</RequestId>
        <HostId>127.0.0.1</HostId>
        <Bucket>examplebucket</Bucket>
      </Error>

SDK

本介面對應的各語言SDK如下:

命令列工具ossutil

CreateCnameToken介面所對應的ossutil命令,請參見create-cname-token。

錯誤碼

錯誤碼

HTTP狀態代碼

描述

InvalidArgument

400

返回此錯誤的可能原因如下:

  • Domain傳入了非法字元,例如泛網域名稱字面量*.example.com。

TooManyCnameToken

400

同一個Bucket建立的Token數量超過最大允許數量限制。

NoNeedCreateCnameToken

200

該CNAME已完整綁定到當前Bucket,無需繼續建立Token。普通Bucket上,該CNAME已被當前Bucket綁定(任一非刪除狀態)即返回此響應;對於Agentic Bucket,僅當該基礎網域名稱已被當前Agentic Bucket綁定同類型的CNAME時,才返回此響應。

MethodNotAllowed

405

目標Bucket類型未開通CNAME能力。