Todos os produtos
Search
Central de documentação

Object Storage Service:CreateCnameToken - Crie um token CNAME e verifique a propriedade do nome de domínio

Última atualização: Sep 22, 2026

O CreateCnameToken cria o token CNAME necessário. Crie o token e verifique a propriedade do nome de domínio. Use o parâmetro wildcard e especifique se o token é para um CNAME exato ou para um CNAME curinga.

Notas de uso

  • Por padrão, um token CNAME expira 72 horas após a criação. Se você chamar esta operação novamente enquanto um token ainda estiver válido, o OSS retorna o token existente, portanto verifique se o token já foi gerado.

  • Para um Agentic Bucket, o parâmetro wildcard é obrigatório: wildcard=true cria um token para um CNAME curinga e wildcard=false cria um token para um CNAME exato.

  • Para um bucket padrão, caso você crie um token para um CNAME exato, o processo funciona exatamente como nas operações CNAME existentes do OSS. Nenhum novo parâmetro é necessário, mas especifique o domínio correto.

Sintaxe da requisição

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>

Cabeçalhos da requisição

Esta operação usa apenas cabeçalhos de requisição comuns. Para mais informações, consulte Common HTTP headers.

Parâmetros da requisição

Parâmetro

Tipo

Obrigatório

Exemplo

Descrição

wildcard

String

Bucket padrão: Não

Agentic Bucket: Sim

true

Indica se um token para CNAME curinga deve ser criado. Valores válidos:

  • true: cria um token para um CNAME curinga.

  • false: cria um token para um CNAME exato.

Para um Agentic Bucket, este parâmetro é obrigatório, portanto defina explicitamente como true ou false. Para um bucket padrão, se você omitir este parâmetro, o valor padrão será false.

O parâmetro wildcard aceita valores diferentes para cada tipo de bucket:

Tipo de bucket

Parâmetro omitido

wildcard=false

wildcard=true

Bucket padrão

Permitido. Cria um token para um CNAME exato.

Permitido. Cria um token para um CNAME exato.

Não permitido

Agentic Bucket

Não permitido

Permitido. Cria um token para um CNAME exato.

Permitido. Cria um token para um CNAME curinga.

Nota

Um único token para um par (bucket, CNAME) abrange tanto o escopo exato quanto o curinga.

Elementos da requisição

Elemento

Tipo

Obrigatório

Exemplo

Descrição

BucketCnameConfiguration

Contêiner

Sim

N/D

O contêiner que armazena a configuração do CNAME.

Nós pai: nenhum

Nós filho: Cname

Cname

Contêiner

Sim

N/D

O contêiner que armazena as informações do CNAME.

Nós pai: BucketCnameConfiguration

Nós filho: Domain

Domain

String

Sim

example.com

O nome de domínio personalizado. Para criar um token para um CNAME exato, defina este elemento como o nome de domínio completo do console, como console.example.com. Para criar um token para um CNAME curinga, defina este elemento como o nome de domínio base sem o prefixo *., como example.com.

Nós pai: Cname

Nós filho: nenhum

Idempotência

A idempotência do CreateCnameToken depende do tipo de bucket e se o CNAME já está mapeado para o bucket atual:

  • Bucket padrão: Se o CNAME já estiver mapeado para o bucket atual em qualquer estado diferente de excluído, o OSS retorna NoNeedCreateCnameToken e você não precisa criar um token.

  • Agentic Bucket: O OSS retorna NoNeedCreateCnameToken apenas se o Agentic Bucket atual já tiver mapeado o nome de domínio base para um CNAME do mesmo tipo.

Elementos da resposta

Elemento

Tipo

Exemplo

Descrição

CnameToken

Contêiner

N/D

O contêiner que armazena o token CNAME.

Nós pai: nenhum

Nós filho: Bucket, Cname, Token e ExpireTime

Bucket

String

examplebucket

O nome do bucket para o qual o CNAME está mapeado.

Nós pai: CnameToken

Nós filho: nenhum

Cname

String

example.com

O nome do CNAME que está mapeado.

Nós pai: CnameToken

Nós filho: nenhum

Token

String

be1d49d863dea9ffeff3df7d6455****

O token CNAME retornado pelo OSS.

Nós pai: CnameToken

Nós filho: nenhum

ExpireTime

String

Wed, 23 Feb 2022 21:16:37 GMT

O horário em que o token CNAME expira.

Nós pai: CnameToken

Nós filho: nenhum

Exemplos

  • Exemplos de requisições

    • Crie um token CNAME para um bucket padrão

      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>
    • Crie um token CNAME para um CNAME curinga de um 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>
    • Crie um token CNAME para um CNAME exato de um 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>
  • Exemplos de respostas

    • O token CNAME é criado.

      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>
    • O número de tokens CNAME excede o limite máximo.

      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 do OSS

As seguintes bibliotecas de SDK do OSS suportam a operação CreateCnameToken:

ossutil

Para obter informações sobre o comando do ossutil correspondente à operação CreateCnameToken, consulte create-cname-token.

Códigos de erro

Código de erro

Código de status HTTP

Descrição

InvalidArgument

400

As possíveis causas do erro são:

  • O elemento Domain contém caracteres inválidos, como o literal curinga *.example.com.

TooManyCnameToken

400

O número de tokens criados para o mesmo bucket excede o limite máximo.

NoNeedCreateCnameToken

200

O CNAME já está mapeado para o bucket atual e você não precisa criar um token. Para um bucket padrão, o OSS retorna esta resposta quando o CNAME já está mapeado para o bucket atual em qualquer estado diferente de excluído. Para um Agentic Bucket, o OSS retorna esta resposta apenas se o nome de domínio base já estiver mapeado para o Agentic Bucket atual por um CNAME do mesmo tipo.

MethodNotAllowed

405

O recurso CNAME não está ativado para o tipo de bucket de destino.