Todos os produtos
Search
Central de documentação

Object Storage Service:PutCname

Última atualização: Jul 03, 2026

Vincula um nome de domínio personalizado (CNAME) a um bucket.

Permissões

Por padrão, uma conta Alibaba Cloud tem permissões totais. Usuários RAM ou funções RAM vinculados a essa conta não possuem permissões iniciais. A conta Alibaba Cloud ou o administrador deve conceder as permissões de operação por meio de políticas do RAM ou Bucket Policy.

API

Action

Descrição

PutCname

oss:PutCname

Mapeia um nome de domínio personalizado para um bucket.

yundun-cert:DescribeSSLCertificatePrivateKey

O mapeamento de um nome de domínio personalizado com certificado anexado exige estas três permissões.

yundun-cert:DescribeSSLCertificatePublicKeyDetail

yundun-cert:CreateSSLCertificate

Sintaxe da solicitação

POST /?cname&comp=add 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

Todas as solicitações PutCname utilizam cabeçalhos comuns. Para mais informações, consulte Cabeçalhos comuns de solicitação.

Elementos da solicitação

Elemento

Tipo

Obrigatório

Exemplo

Descrição

BucketCnameConfiguration

Container

Sim

N/A

Contêiner do registro CNAME.

Nós pai: nenhum

Nós filho: Cname

Cname

Container

Sim

N/A

Contêiner das informações de CNAME.

Nós pai: BucketCnameConfiguration

Nós filho: Domain

Domain

String

Sim

example.com

Nome de domínio personalizado a vincular.

Nós pai: Cname

Nós filho: nenhum

CertificateConfiguration

Container

Não

N/A

Contêiner da configuração do certificado.

Nós pai: Cname

Nós filho: CertId, Certificate, PrivateKey, PreviousCertId, Force e DeleteCertificate

CertId

String

Não

493****-cn-hangzhou

ID do certificado.

Nós pai: CertificateConfiguration

Nós filho: nenhum

Certificate

String

Não

-----BEGIN CERTIFICATE----- MIIDhDCCAmwCCQCFs8ixARsyrDANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMC **** -----END CERTIFICATE-----

Chave pública do certificado.

Nós pai: CertificateConfiguration

Nós filho: nenhum

PrivateKey

String

Não

-----BEGIN CERTIFICATE----- MIIDhDCCAmwCCQCFs8ixARsyrDANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMC **** -----END CERTIFICATE-----

Chave privada do certificado.

Nós pai: CertificateConfiguration

Nós filho: nenhum

PreviousCertId

String

Não

493****-cn-hangzhou

ID atual do certificado. O OSS verifica se este valor corresponde ao ID existente antes de sobrescrevê-lo, exceto quando Force é definido como true.

Importante

Se PreviousCertId não for especificado ao vincular um certificado, defina Force como true.

Nós pai: CertificateConfiguration

Nós filho: nenhum

Force

String

Não

true

Define se o certificado existente será sobrescrito. Valores válidos:

  • true: Sobrescreve o certificado.

  • false: Não sobrescreve o certificado.

Nós pai: CertificateConfiguration

Nós filho: nenhum

DeleteCertificate

String

Não

true

Define se o certificado será excluído. Valores válidos:

  • true: Exclui o certificado.

  • false: Não exclui o certificado.

Nós pai: CertificateConfiguration

Nós filho: nenhum

Cabeçalhos da resposta

Esta operação retorna apenas Cabeçalhos comuns de resposta.

Exemplos

  • Exemplos de solicitações

    • Mapear um nome de domínio

      POST /?cname&comp=add HTTP/1.1
      Host: oss-example.oss-cn-hangzhou.aliyuncs.com
      Content-Type: application/xml
      Content-Length: 186
      Date: Thu, 24 Sep 2015 15:39:12 GMT
      Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=host,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
      <BucketCnameConfiguration>
        <Cname>
          <Domain>example.com</Domain>
        </Cname>
      </BucketCnameConfiguration>
    • Vincular um certificado ao nome de domínio

      POST /?cname&comp=add HTTP/1.1
      Host: oss-example.oss-cn-hangzhou.aliyuncs.com
      Content-Type: application/xml
      Content-Length: 186
      Date: Thu, 24 Sep 2015 15:39:12 GMT
      Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=host,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
      <BucketCnameConfiguration>
        <Cname>
          <Domain>example.com</Domain>
          <CertificateConfiguration>
            <CertId>493****-cn-hangzhou</CertId>
            <Certificate>-----BEGIN CERTIFICATE----- MIIDhDCCAmwCCQCFs8ixARsyrDANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMC **** -----END CERTIFICATE-----</Certificate>
            <PrivateKey>-----BEGIN CERTIFICATE----- MIIDhDCCAmwCCQCFs8ixARsyrDANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMC **** -----END CERTIFICATE-----</PrivateKey>
            <PreviousCertId>493****-cn-hangzhou</PreviousCertId>
            <Force>true</Force>
          </CertificateConfiguration>
        </Cname>
      </BucketCnameConfiguration>
    • Desvincular um certificado do nome de domínio

      Para desvincular o certificado do nome de domínio, defina DeleteCertificate como true.

      POST /?cname&comp=add HTTP/1.1
      Host: oss-example.oss-cn-hangzhou.aliyuncs.com
      Content-Type: application/xml
      Content-Length: 186
      Date: Thu, 24 Sep 2015 15:39:12 GMT
      Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=host,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
      <BucketCnameConfiguration>
        <Cname>
          <Domain>example.com</Domain>
            <CertificateConfiguration>
            <DeleteCertificate>True</DeleteCertificate>
          </CertificateConfiguration>
        </Cname>
      </BucketCnameConfiguration>
  • Exemplos de respostas de sucesso

    content-length: 0
    x-oss-console-auth: success
    server: AliyunOSS
    x-oss-server-time: 980
    connection: keep-alive
    x-oss-request-id: 5C1B138A109F4E405B2D
    date: Wed, 15 Sep 2021 03:33:37 GMT

SDKs do OSS

Use os seguintes SDKs do OSS para chamar PutCname:

ossutil

Para obter informações sobre o comando ossutil correspondente à operação PutCname, consulte put-cname.

Códigos de erro

Código de erro

Código de status HTTP

Descrição

InvalidArgument

400

Formato de registro CNAME inválido. Verifique os campos de erro no corpo XML retornado para obter detalhes.

NeedVerifyDomainOwnership

403

Propriedade do nome de domínio não verificada.

Para verificar a propriedade do domínio:

  1. Chame CreateCnameToken para gerar um token CNAME de verificação de propriedade.

    Nota

    Um token CNAME expira 72 horas após a criação. Se você criar um token enquanto outro ainda estiver válido, o sistema retornará o token existente.

  2. Adicione um registro TXT no provedor do seu domínio.

    Por exemplo, para verificar example.com, adicione um registro TXT com host _dnsauth.example e defina o valor do registro como o token CNAME obtido na Etapa 1. Mantenha as configurações padrão para os outros parâmetros. Consulte a seção "Adicionar manualmente um registro CNAME" em Mapear nomes de domínio personalizados.

    Nota

    A propagação do registro TXT pode levar alguns minutos.

  3. Chame PutCname para mapear o nome de domínio personalizado.

CnameDenied

403

O nome de domínio está em uso.

CnameIsForbidden

403

O OSS reservou este nome de domínio e ele não pode ser mapeado.

CnameIsRisk

403

O nome de domínio foi sinalizado como alto risco e não pode ser mapeado.

NoSuchCnameInRecord

404

O nome de domínio não possui licença ICP. Solicite um arquivamento ICP por meio de O que é Domains?.

CnameAlreadyExists

409

Possíveis causas:

  • O nome de domínio já está mapeado para outro bucket na conta atual.

    O CnameType na resposta de erro é CNAME_OSS.

  • O nome de domínio está em uso para processamento de imagens.

    O CnameType na resposta de erro é CNAME_IMG.

Remova primeiro o mapeamento existente. Consulte a seção "CnameAlreadyExists" em Código de status HTTP 409.