CreateCnameToken crea el token de CNAME necesario para comprobar la propiedad de un nombre de dominio. Use el parámetro wildcard para especificar si se crea el token para un CNAME exacto o para un CNAME comodín.
Notas de uso
De forma predeterminada, un token de CNAME caduca 72 horas después de su creación. Si vuelve a llamar a esta operación mientras un token de CNAME existente sigue siendo válido, se devuelve el token actual.
Para un Agentic Bucket, el parámetro
wildcardes obligatorio:wildcard=truecrea un token para un CNAME comodín ywildcard=falsecrea un token para un CNAME exacto. No puede omitir este parámetro ni dejarlo en blanco.En un bucket estándar, esta operación se llama de la misma manera que las operaciones openapi de CNAME existentes de OSS para crear un token de CNAME exacto. No se requieren parámetros nuevos.
Sintaxis de la solicitud
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>
Encabezados de la solicitud
Esta operación solo usa Common HTTP headers.
Parámetros de la solicitud
Parámetro | Tipo | Obligatorio | Ejemplo | Descripción |
wildcard | String | Bucket estándar: No Agentic Bucket: Sí | true | Especifica si se crea un token para un CNAME comodín. Valores válidos:
Para un Agentic Bucket, este parámetro es obligatorio y debe establecerse explícitamente en true o false. No se puede omitir ni dejar en blanco. En un bucket estándar, el parámetro es opcional y su valor predeterminado es false. |
A continuación se describen los valores válidos del parámetro wildcard para cada tipo de bucket.
|
Tipo de bucket |
Parámetro omitido |
wildcard=false |
wildcard=true |
|
Bucket estándar |
Permitido. Se crea un token para un CNAME exacto. |
Permitido. Se crea un token para un CNAME exacto. |
No permitido |
|
Agentic Bucket |
No permitido |
Permitido. Se crea un token para un CNAME exacto. |
Permitido. Se crea un token para un CNAME comodín. |
El token correspondiente al mismo par (bucket, CNAME) abarca tanto el alcance exacto como el alcance comodín.
Elementos de la solicitud
Elemento | Tipo | Obligatorio | Ejemplo | Descripción |
BucketCnameConfiguration | Container | Sí | Ninguna | Contenedor donde se almacena la configuración de CNAME. Nodos principales: ninguno Nodos secundarios: Cname |
Cname | Container | Sí | Ninguna | Contenedor donde se almacena la información de CNAME. Nodo principal: BucketCnameConfiguration Nodos secundarios: Domain |
Domain | String | Sí | example.com | Nombre de dominio personalizado. Para crear un token de CNAME exacto, establezca este elemento con el nombre de dominio completo, como console.example.com. Para crear un token de CNAME comodín, establezca este elemento con el nombre de dominio base del dominio comodín sin el prefijo Nodo principal: Cname Nodos secundarios: ninguno |
Idempotencia
La idempotencia de CreateCnameToken varía según el tipo de bucket y depende de si el CNAME ya está asignado al bucket actual:
Bucket estándar: si el CNAME ya está asignado al bucket actual en cualquier estado distinto de eliminado, se devuelve
NoNeedCreateCnameTokeny no es necesario crear un token.Agentic Bucket: se devuelve
NoNeedCreateCnameTokenúnicamente cuando el nombre de dominio base ya está asignado al Agentic Bucket actual mediante un CNAME del mismo tipo.
Elementos de la respuesta
Elemento | Tipo | Ejemplo | Descripción |
CnameToken | Container | Ninguna | Contenedor donde se almacena el token de CNAME. Nodos principales: ninguno Nodos secundarios: Bucket, Cname, Token y ExpireTime |
Bucket | String | examplebucket | Nombre del bucket al que está asignado el CNAME. Nodo principal: CnameToken Nodos secundarios: ninguno |
Cname | String | example.com | Nombre del CNAME asignado. Nodo principal: CnameToken Nodos secundarios: ninguno |
Token | String | be1d49d863dea9ffeff3df7d6455**** | Token de CNAME que devuelve OSS. Nodo principal: CnameToken Nodos secundarios: ninguno |
ExpireTime | String | Wed, 23 Feb 2022 21:16:37 GMT | Hora en la que caduca el token de CNAME. Nodo principal: CnameToken Nodos secundarios: ninguno |
Ejemplos
-
Solicitudes de ejemplo
-
Crear un token de CNAME para un bucket estándar
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> -
Crear un token de CNAME para un CNAME comodín de 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> -
Crear un token de CNAME para un CNAME exacto de 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>
-
-
Respuestas de ejemplo
-
Se creó el token de 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>Fri, 01 Aug 2026 03:00:00 GMT</ExpireTime> </CnameToken> -
La cantidad de tokens de CNAME supera el límite.
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 de OSS
Los siguientes SDK de OSS admiten la operación CreateCnameToken:
ossutil
Para obtener información sobre el comando de ossutil correspondiente a la operación CreateCnameToken, consulte create-cname-token.
Códigos de error
Código de error | Código de estado HTTP | Descripción |
InvalidArgument | 400 | Este error se puede devolver por el siguiente motivo:
|
TooManyCnameToken | 400 | La cantidad de tokens creados para el mismo bucket supera el límite máximo permitido. |
NoNeedCreateCnameToken | 200 | El CNAME ya está asignado al bucket actual, por lo que no es necesario crear un token. En un bucket estándar, esta respuesta se devuelve cuando el CNAME ya está asignado al bucket actual en cualquier estado distinto de eliminado. En un Agentic Bucket, la respuesta se devuelve únicamente cuando el nombre de dominio base ya está asignado al Agentic Bucket actual mediante un CNAME del mismo tipo. |
MethodNotAllowed | 405 | La función de CNAME no está habilitada para el tipo de bucket de destino. |