CreateCnameToken API は、ドメイン名の所有権の検証に必要な CNAME トークンを作成します。 wildcard パラメーターを使用して、完全一致 CNAME とワイルドカード CNAME のどちらのトークンを作成するかを指定します。
使用上の注意
デフォルトでは、CNAME トークンは作成後 72 時間で有効期限が切れます。 トークンがまだ有効である間にこの API を再度呼び出した場合、OSS は既存のトークンを返します。
Agentic バケットの場合、
wildcardパラメーターは必須であり、空にすることはできません。wildcard=trueはワイルドカード CNAME のトークンを作成し、wildcard=falseは完全一致 CNAME のトークンを作成します。標準バケットの場合、完全一致 CNAME のトークン作成は、既存の OSS CNAME 操作とまったく同じように動作します。 新しいパラメーターは不要です。
リクエスト構文
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>リクエストヘッダー
この API は、共通のリクエストヘッダーのみを使用します。 詳細については、「共通 HTTP ヘッダー」をご参照ください。
リクエストパラメーター
パラメーター | タイプ | 必須 | 例 | 説明 |
wildcard | String | 標準バケット:いいえ Agentic バケット:はい | true | ワイルドカード CNAME のトークンを作成するかどうかを指定します。 有効な値:
Agentic バケットの場合、このパラメーターは必須です。 明示的に |
wildcard パラメーターは、バケットタイプごとに異なる値を取ります:
バケットタイプ | パラメーターの省略 | wildcard=false | wildcard=true |
標準バケット | 可能です。完全一致 CNAME のトークンを作成します。 | 可能です。完全一致 CNAME のトークンを作成します。 | 不可能です。 |
Agentic バケット | 不可能です。 | 可能です。完全一致 CNAME のトークンを作成します。 | 可能です。ワイルドカード CNAME のトークンを作成します。 |
(バケット、CNAME) のペアに対する単一のトークンは、完全一致スコープとワイルドカードスコープの両方に対応します。
リクエスト要素
要素 | タイプ | 必須 | 例 | 説明 |
BucketCnameConfiguration | コンテナ | はい | N/A | CNAME 設定を格納するコンテナです。 親ノード:なし 子ノード: |
Cname | コンテナ | はい | N/A | CNAME 情報を格納するコンテナです。 親ノード: 子ノード: |
Domain | String | はい | example.com | カスタムドメイン名。 完全一致 CNAME のトークンを作成するには、この要素を 親ノード: 子ノード:なし |
べき等性
CreateCnameToken のべき等性は、バケットタイプと、CNAME が現在のバケットにすでにマッピングされているかどうかによって異なります:
標準バケット:CNAME が削除済み以外の状態で現在のバケットにすでにマッピングされている場合、 OSS は
NoNeedCreateCnameTokenを返し、トークンを作成する必要はありません。Agentic バケット: OSS は、現在の Agentic バケットが、同じタイプの CNAME にベースドメイン名をすでにマッピングしている場合にのみ
NoNeedCreateCnameTokenを返します。
レスポンス要素
要素 | タイプ | 例 | 説明 |
CnameToken | コンテナ | N/A | CNAME トークンを格納するコンテナです。 親ノード:なし 子ノード: |
Bucket | String | examplebucket | CNAME がマッピングされるバケットの名前です。 親ノード: 子ノード:なし |
Cname | String | example.com | マッピングされる CNAME の名前です。 親ノード: 子ノード:なし |
Token | String | be1d49d863dea9ffeff3df7d6455**** | OSS によって返される CNAME トークンです。 親ノード: 子ノード:なし |
ExpireTime | String | Wed, 23 Feb 2022 21:16:37 GMT | CNAME トークンの有効期限が切れる時刻です。 親ノード: 子ノード:なし |
例
リクエストの例
標準バケットの CNAME トークンの作成
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 バケットのワイルドカード CNAME の CNAME トークンの作成
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 バケットの完全一致 CNAME の CNAME トークンの作成
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>
レスポンスの例
CNAME トークンが作成された場合
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>Thu, 29 Jul 2021 14:00:00 GMT</ExpireTime> </CnameToken>CNAME トークンの数が上限を超えた場合
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>
OSS SDK
CreateCnameToken API をサポートする OSS SDK は次のとおりです:
ossutil
CreateCnameToken API に対応する ossutil コマンドの詳細については、「create-cname-token」をご参照ください。
エラーコード
エラーコード | HTTP ステータスコード | 説明 |
InvalidArgument | 400 | エラーの原因として、以下が考えられます:
|
TooManyCnameToken | 400 | 同じバケットに対して作成されたトークンの数が上限を超えています。 |
NoNeedCreateCnameToken | 200 | CNAME は現在のバケットにすでにマッピングされているため、トークンを作成する必要はありません。 標準バケットの場合、CNAME が削除済み以外の状態で現在のバケットにすでにマッピングされていると、 OSS はこのレスポンスを返します。 Agentic バケットの場合、ベースドメイン名が同じタイプの CNAME によって現在の Agentic バケットにすでにマッピングされている場合にのみ、 OSS はこのレスポンスを返します。 |
MethodNotAllowed | 405 | 対象のバケットタイプでは CNAME 機能が有効になっていません。 |