調用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。取值如下:
對於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時傳入泛網域名稱基礎域(不含 父節點: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 | 返回此錯誤的可能原因如下:
|
TooManyCnameToken | 400 | 同一個Bucket建立的Token數量超過最大允許數量限制。 |
NoNeedCreateCnameToken | 200 | 該CNAME已完整綁定到當前Bucket,無需繼續建立Token。普通Bucket上,該CNAME已被當前Bucket綁定(任一非刪除狀態)即返回此響應;對於Agentic Bucket,僅當該基礎網域名稱已被當前Agentic Bucket綁定同類型的CNAME時,才返回此響應。 |
MethodNotAllowed | 405 | 目標Bucket類型未開通CNAME能力。 |