Todos os produtos
Search
Central de documentação

Object Storage Service:CreateCnameToken - Create a CNAME token to verify domain name ownership

Última atualização: Sep 15, 2026

A operação CreateCnameToken gera o token de CNAME necessário para verificar a propriedade de um nome de domínio. Use o parâmetro wildcard para definir se o token será criado para um CNAME exato ou para um CNAME curinga.

Observações de uso

  • Por padrão, um token de CNAME expira 72 horas após a criação. Se você chamar esta operação novamente enquanto um token de CNAME existente ainda estiver válido, o sistema retornará esse token.

  • Para um Agentic Bucket, o parâmetro wildcard é obrigatório: wildcard=true cria um token para um CNAME curinga, enquanto wildcard=false cria um token para um CNAME exato. Não omita este parâmetro nem o deixe em branco.

  • Para buckets padrão, chame esta operação da mesma forma que as operações OpenAPI de CNAME do OSS existentes para criar um token destinado a um CNAME exato. Nenhum parâmetro adicional é necessário.

Sintaxe da solicitaçã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 solicitação

Esta operação usa apenas Common HTTP headers.

Parâmetros da solicitação

Parâmetro

Tipo

Obrigatório

Exemplo

Descrição

wildcard

String

Bucket padrão: Não

Agentic Bucket: Sim

true

Define se deve ser criado um token para um CNAME curinga. 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 e deve ser definido explicitamente como true ou false. Não o omita nem o deixe em branco. Para um bucket padrão, este parâmetro é opcional e tem false como valor padrão.

A tabela a seguir descreve os valores válidos do parâmetro wildcard para cada tipo de bucket.

Tipo de bucket

Parâmetro omitido

wildcard=false

wildcard=true

Bucket padrão

Permitido. Um token é criado para um CNAME exato.

Permitido. Um token é criado para um CNAME exato.

Não permitido

Agentic Bucket

Não permitido

Permitido. Um token é criado para um CNAME exato.

Permitido. Um token é criado para um CNAME curinga.

Nota

O token para o mesmo par (bucket, CNAME) abrange tanto o escopo exato quanto o escopo curinga.

Elementos da solicitação

Elemento

Tipo

Obrigatório

Exemplo

Descrição

BucketCnameConfiguration

Container

Sim

N/A

O container onde a configuração de CNAME é armazenada.

Nós pai: nenhum

Nós filho: Cname

Cname

Container

Sim

N/A

O container onde as informações de CNAME são armazenadas.

Nó 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 com o nome de domínio completo, como console.example.com. Para criar um token para um CNAME curinga, defina este elemento com o nome de domínio base do domínio curinga sem o prefixo *., como example.com.

Nó pai: Cname

Nós filho: nenhum

Idempotência

A idempotência da operação CreateCnameToken varia conforme o tipo de bucket e depende 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 sistema retorna NoNeedCreateCnameToken e não é necessário criar um token.

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

Elementos da resposta

Elemento

Tipo

Exemplo

Descrição

CnameToken

Container

N/A

O container onde o token de CNAME é armazenado.

Nós pai: nenhum

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

Bucket

String

examplebucket

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

Nó pai: CnameToken

Nós filho: nenhum

Cname

String

example.com

O nome do CNAME mapeado.

Nó pai: CnameToken

Nós filho: nenhum

Token

String

be1d49d863dea9ffeff3df7d6455****

O token de CNAME retornado pelo OSS.

Nó pai: CnameToken

Nós filho: nenhum

ExpireTime

String

Wed, 23 Feb 2022 21:16:37 GMT

O horário de expiração do token de CNAME.

Nó pai: CnameToken

Nós filho: nenhum

Exemplos

  • Exemplos de solicitações

    • Criar um token de 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>
    • Criar um token de 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>
    • Criar um token de 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 de CNAME foi criado com sucesso.

      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>
    • A quantidade de tokens de CNAME excedeu o limite permitido.

      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>

SDKs do OSS

Os seguintes SDKs do OSS oferecem suporte à operação CreateCnameToken:

  • Java

  • Python V2

  • Go V2

  • Node.js

  • PHP V2

    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

    Este erro pode ser retornado pelo seguinte motivo:

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

    TooManyCnameToken

    400

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

    NoNeedCreateCnameToken

    200

    O CNAME já está mapeado para o bucket atual, portanto não é necessário criar um token. Para um bucket padrão, essa resposta ocorre quando o CNAME já está mapeado para o bucket atual em qualquer estado diferente de excluído. Para um Agentic Bucket, essa resposta é retornada 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 de CNAME não está ativado para o tipo de bucket de destino.