PutCname asigna un nombre de dominio personalizado a un bucket. Un bucket estándar solo admite un CNAME exacto. Un Agentic Bucket también admite un CNAME comodín, que se usa para acceder a sus Bucket Spaces.
Notas de uso
Cuando asigne un CNAME exacto o comodín a un Agentic Bucket, incluya explícitamente el elemento
IsWildCarden el XML de la solicitud y establézcalo como true o false.Un Agentic Bucket no es compatible con los siguientes elementos:
AccessPointName,AccessPointNameForObjectProcess,PurgeConfiguration/IsPurgeCdnCacheyClientCaConfiguration(incluidos casCertId, los certificados inline y las operaciones de eliminación). Si configura alguno de ellos, OSS devuelve el error 400 MalformedXML. Un bucket estándar conserva la compatibilidad total con estos elementos.No es posible asignar un Bucket Space directamente a un CNAME. El acceso por red pública a un Bucket Space se efectúa mediante el CNAME comodín asignado a su Agentic Bucket principal.
Permisos
De forma predeterminada, una cuenta de Alibaba Cloud tiene todos los permisos. Los usuarios y roles de RAM bajo una cuenta de Alibaba Cloud carecen de permisos de manera predeterminada. La cuenta de Alibaba Cloud o un administrador de la cuenta debe otorgar los permisos obligatorios mediante RAM Policy o Bucket Policy.
API | Action | Descripción |
PutCname | oss:PutCname | Asigna un nombre de dominio personalizado a un bucket. |
yundun-cert:DescribeSSLCertificatePrivateKey | Si vincula un certificado al asignar un nombre de dominio personalizado a un bucket, estos tres permisos son obligatorios. | |
yundun-cert:DescribeSSLCertificatePublicKeyDetail | ||
yundun-cert:CreateSSLCertificate |
Sintaxis de la solicitud
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>
PutCname usa el elemento IsWildCard en el XML de la solicitud para declarar si el CNAME es exacto o comodín. En un Agentic Bucket, el elemento IsWildCard es obligatorio.
Encabezados de solicitud
Esta operación solo usa encabezados de solicitud comunes. Para obtener más información, consulte Common HTTP headers.
Elementos de la solicitud
Elemento | Tipo | Obligatorio | Ejemplo | Descripción |
BucketCnameConfiguration | Contenedor | Sí | Ninguna | Contenedor que almacena la configuración del CNAME. Nodos principales: ninguno Nodos secundarios: Cname |
Cname | Contenedor | Sí | Ninguna | Contenedor que almacena la información del CNAME. Nodos principales: BucketCnameConfiguration Nodos secundarios: Domain, IsWildCard y CertificateConfiguration |
Domain | String | Sí | example.com | Nombre de dominio personalizado. Para asignar un CNAME exacto, establezca este elemento con el nombre de dominio completo, como console.example.com. Para asignar un CNAME comodín, establézcalo con el nombre de dominio base sin el prefijo Nodos principales: Cname Nodos secundarios: ninguno |
IsWildCard | Boolean | Bucket estándar: No Agentic Bucket: Sí | true | Especifica si se asigna un CNAME comodín. Valores válidos:
En un Agentic Bucket, este elemento es obligatorio. Establézcalo explícitamente como true o false. En un bucket estándar, si omite este elemento, el valor predeterminado es false. Nodos principales: Cname Nodos secundarios: ninguno |
CertificateConfiguration | Contenedor | No | Ninguna | Contenedor que almacena la configuración del certificado. Al asignar un CNAME comodín, el CN o SAN del certificado debe coincidir con Nodos principales: Cname Nodos secundarios: CertId, Certificate, PrivateKey, PreviousCertId, Force y DeleteCertificate |
CertId | String | No | 493****-cn-hangzhou | ID del certificado. Nodos principales: CertificateConfiguration Nodos secundarios: ninguno |
Certificate | String | No | -----BEGIN CERTIFICATE----- MIIDhDCCAmwCCQCFs8ixARsyrDANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMC **** -----END CERTIFICATE----- | Clave pública del certificado. Nodos principales: CertificateConfiguration Nodos secundarios: ninguno |
PrivateKey | String | No | -----BEGIN PRIVATE KEY----- MIIDhDCCAmwCCQCFs8ixARsyrDANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMC **** -----END PRIVATE KEY----- | Clave privada del certificado. Nodos principales: CertificateConfiguration Nodos secundarios: ninguno |
PreviousCertId | String | No | 493****-cn-hangzhou | ID del certificado vinculado actualmente. Si Force no se establece como true, OSS comprueba que este valor coincida con el certificado realmente vinculado y devuelve un error si no coinciden. Importante Si no especifica PreviousCertId al vincular un certificado, establezca Force como true. Nodos principales: CertificateConfiguration Nodos secundarios: ninguno |
Force | String | No | true | Especifica si se sobrescribe el certificado. Valores válidos:
Nodos principales: CertificateConfiguration Nodos secundarios: ninguno |
DeleteCertificate | String | No | true | Especifica si se elimina el certificado. Valores válidos:
Nodos principales: CertificateConfiguration Nodos secundarios: ninguno |
Encabezados de respuesta
Esta operación solo devuelve encabezados de respuesta comunes. Para obtener más información, consulte Common HTTP headers.
Ejemplos
-
Solicitudes de ejemplo
-
Asignación de un nombre de dominio personalizado a un bucket estándar
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> -
Vinculación de un certificado a un nombre de dominio personalizado de un bucket estándar
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 PRIVATE KEY----- MIIDhDCCAmwCCQCFs8ixARsyrDANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMC **** -----END PRIVATE KEY-----</PrivateKey> <PreviousCertId>493****-cn-hangzhou</PreviousCertId> <Force>true</Force> </CertificateConfiguration> </Cname> </BucketCnameConfiguration> -
Desvinculación de un certificado de un nombre de dominio personalizado de un bucket estándar
Si ya no desea que el nombre de dominio use este certificado, desvincúlelo.
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> -
Asignación de un CNAME comodín a un Agentic Bucket (con un certificado comodín)
POST /?cname&comp=add 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=host,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e <BucketCnameConfiguration> <Cname> <Domain>example.com</Domain> <IsWildCard>true</IsWildCard> <CertificateConfiguration> <Certificate>-----BEGIN CERTIFICATE----- MIIDhDCCAmwCCQCFs8ixARsyrDANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMC **** -----END CERTIFICATE-----</Certificate> <PrivateKey>-----BEGIN PRIVATE KEY----- MIIDhDCCAmwCCQCFs8ixARsyrDANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMC **** -----END PRIVATE KEY-----</PrivateKey> </CertificateConfiguration> </Cname> </BucketCnameConfiguration> -
Asignación de un CNAME exacto a un Agentic Bucket
POST /?cname&comp=add 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=host,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e <BucketCnameConfiguration> <Cname> <Domain>console.example.com</Domain> <IsWildCard>false</IsWildCard> </Cname> </BucketCnameConfiguration>
-
-
Respuesta de ejemplo
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
SDK de OSS
Los siguientes SDK de OSS admiten la operación PutCname:
ossutil
Para obtener información sobre el comando de ossutil correspondiente a la operación PutCname, consulte put-cname.
Códigos de error
Código de error | Código de estado HTTP | Descripción |
InvalidArgument | 400 | Las posibles causas del error son a continuación:
|
MalformedXML | 400 | La solicitud incluye un elemento que los Agentic Buckets no admiten (AccessPointName, AccessPointNameForObjectProcess, PurgeConfiguration/IsPurgeCdnCache o ClientCaConfiguration), o bien el formato del cuerpo de la solicitud no es válido. |
CnameCertificateMismatch | 400 | El certificado no coincide con el nombre de dominio del CNAME. Cuando asigne un CNAME comodín, use un certificado comodín cuyo CN o SAN coincida con |
NeedVerifyDomainOwnership | 403 | No se verificó la propiedad del nombre de dominio. Para comprobar la propiedad del nombre de dominio, siga estos pasos:
|
CnameDenied | 403 | El nombre de dominio ya está in use. |
CnameIsForbidden | 403 | OSS reservó el nombre de dominio y no se puede asignar. |
CnameIsRisk | 403 | El nombre de dominio representa un riesgo alto y no se puede asignar. |
NoSuchCnameInRecord | 404 | El nombre de dominio no cuenta con un registro ICP. Para obtener más información sobre cómo solicitar un registro ICP, consulte Alibaba Cloud Domain Names. |
ConflictCname | 409 | El nombre de dominio base comodín ya está asignado a otro Agentic Bucket bajo el mismo UID. Desasigne primero el CNAME comodín del Agentic Bucket original y vuelva a asignarlo después. |
CnameAlreadyExists | 409 | Las posibles causas del error son a continuación:
Para resolver estos problemas, desasigne el nombre de dominio. Para obtener más información, consulte Unmap a domain name. |
MethodNotAllowed | 405 | La función de CNAME no está habilitada para el tipo de bucket de destino. |