L'opération CreateCnameToken crée le jeton CNAME nécessaire pour vérifier la propriété d'un nom de domaine. Utilisez le paramètre wildcard pour spécifier si vous souhaitez créer un jeton pour un enregistrement CNAME exact ou pour un enregistrement CNAME générique (wildcard).
Notes d'utilisation
Par défaut, un jeton CNAME expire 72 heures après sa création. Si vous appelez à nouveau cette opération alors qu'un jeton est encore valide, OSS renvoie le jeton existant.
Pour un Agentic Bucket, le paramètre
wildcardest obligatoire :wildcard=truecrée un jeton pour un enregistrement CNAME générique, tandis quewildcard=falsecrée un jeton pour un enregistrement CNAME exact.Pour un bucket standard, la création d'un jeton pour un enregistrement CNAME exact fonctionne exactement comme pour les opérations CNAME OSS existantes. Aucun nouveau paramètre n'est requis.
Syntaxe de la requête
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>
En-têtes de requête
Cette opération utilise uniquement des en-têtes de requête communs. Pour plus d'informations, consultez la rubrique En-têtes HTTP communs.
Paramètres de requête
Paramètre | Type | Obligatoire | Exemple | Description |
wildcard | String | Bucket standard : Non Agentic Bucket : Oui | true | Indique s'il faut créer un jeton pour un enregistrement CNAME générique. Valeurs possibles :
Pour un Agentic Bucket, ce paramètre est obligatoire. Définissez-le explicitement sur true ou false. Pour un bucket standard, si vous omettez ce paramètre, la valeur par défaut est false. |
Le paramètre wildcard prend des valeurs différentes selon le type de bucket :
|
Type de bucket |
Paramètre omis |
wildcard=false |
wildcard=true |
|
Bucket standard |
Autorisé. Crée un jeton pour un enregistrement CNAME exact. |
Autorisé. Crée un jeton pour un enregistrement CNAME exact. |
Non autorisé |
|
Agentic Bucket |
Non autorisé |
Autorisé. Crée un jeton pour un enregistrement CNAME exact. |
Autorisé. Crée un jeton pour un enregistrement CNAME générique. |
Un seul jeton pour une paire (bucket, CNAME) couvre à la fois la portée exacte et la portée générique.
Éléments de requête
Élément | Type | Obligatoire | Exemple | Description |
BucketCnameConfiguration | Container | Oui | N/A | Conteneur qui stocke la configuration CNAME. Nœuds parents : aucun Nœuds enfants : Cname |
Cname | Container | Oui | N/A | Conteneur qui stocke les informations CNAME. Nœuds parents : BucketCnameConfiguration Nœuds enfants : Domain |
Domain | String | Oui | example.com | Nom de domaine personnalisé. Pour créer un jeton pour un enregistrement CNAME exact, définissez cet élément sur le nom de domaine complet, par exemple console.example.com. Pour créer un jeton pour un enregistrement CNAME générique, définissez cet élément sur le nom de domaine de base sans le préfixe Nœuds parents : Cname Nœuds enfants : aucun |
Idempotence
L'idempotence de l'opération CreateCnameToken dépend du type de bucket et du fait que le CNAME est déjà mappé au bucket actuel :
Bucket standard : si le CNAME est déjà mappé au bucket actuel dans tout état autre que supprimé, OSS renvoie
NoNeedCreateCnameTokenet vous n'avez pas besoin de créer un jeton.Agentic Bucket : OSS renvoie
NoNeedCreateCnameTokenuniquement si l'Agentic Bucket actuel a déjà mappé le nom de domaine de base à un CNAME du même type.
Éléments de réponse
Élément | Type | Exemple | Description |
CnameToken | Container | N/A | Conteneur qui stocke le jeton CNAME. Nœuds parents : aucun Nœuds enfants : Bucket, Cname, Token et ExpireTime |
Bucket | String | examplebucket | Nom du bucket auquel le CNAME est mappé. Nœuds parents : CnameToken Nœuds enfants : aucun |
Cname | String | example.com | Nom du CNAME mappé. Nœuds parents : CnameToken Nœuds enfants : aucun |
Token | String | be1d49d863dea9ffeff3df7d6455**** | Jeton CNAME renvoyé par OSS. Nœuds parents : CnameToken Nœuds enfants : aucun |
ExpireTime | String | Wed, 23 Feb 2022 21:16:37 GMT | Date et heure d'expiration du jeton CNAME. Nœuds parents : CnameToken Nœuds enfants : aucun |
Exemples
-
Exemples de requêtes
-
Créer un jeton CNAME pour un bucket standard
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> -
Créer un jeton CNAME pour un enregistrement CNAME générique d'un Agentic Bucket
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> -
Créer un jeton CNAME pour un enregistrement CNAME exact d'un Agentic Bucket
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>
-
-
Exemples de réponses
-
Le jeton CNAME est créé.
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> -
Le nombre de jetons CNAME dépasse la limite supérieure.
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 OSS
Les SDK OSS suivants prennent en charge l'opération CreateCnameToken :
ossutil
Pour obtenir des informations sur la commande ossutil correspondant à l'opération CreateCnameToken, consultez la rubrique create-cname-token.
Codes d'erreur
Code d'erreur | Code d'état HTTP | Description |
InvalidArgument | 400 | Les causes possibles de l'erreur sont les suivantes :
|
TooManyCnameToken | 400 | Le nombre de jetons créés pour le même bucket dépasse la limite supérieure. |
NoNeedCreateCnameToken | 200 | Le CNAME est déjà mappé au bucket actuel et vous n'avez pas besoin de créer un jeton. Pour un bucket standard, OSS renvoie cette réponse lorsque le CNAME est déjà mappé au bucket actuel dans tout état autre que supprimé. Pour un Agentic Bucket, OSS renvoie cette réponse uniquement si le nom de domaine de base est déjà mappé à l'Agentic Bucket actuel par un CNAME du même type. |
MethodNotAllowed | 405 | La fonctionnalité CNAME n'est pas activée pour le type de bucket cible. |