全部产品
Search
文档中心

Object Storage Service:PutCname

更新时间:Jul 06, 2025

Memetakan nama domain kustom ke bucket.

Perizinan

Secara default, akun Alibaba Cloud memiliki semua izin. Pengguna RAM atau Peran RAM di bawah akun Alibaba Cloud tidak memiliki izin apa pun secara default. Administrator akun harus memberikan izin operasi melalui Kebijakan RAM atau Kebijakan Bucket.

API

Aksi

Definisi

PutCname

oss:PutCname

Memetakan nama domain kustom ke bucket.

yundun-cert:DescribeSSLCertificatePrivateKey

Saat memetakan nama domain kustom ke bucket, jika sertifikat dilampirkan, tiga izin ini diperlukan.

yundun-cert:DescribeSSLCertificatePublicKeyDetail

yundun-cert:CreateSSLCertificate

Sintaks permintaan

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>

Header permintaan

Semua header permintaan dalam permintaan PutCname adalah header umum. Untuk informasi lebih lanjut, lihat Header Permintaan Umum.

Elemen permintaan

Elemen

Tipe

Diperlukan

Contoh

Deskripsi

BucketCnameConfiguration

Container

Ya

N/A

Kontainer yang menyimpan catatan CNAME.

Node induk: tidak ada

Node anak: Cname

Cname

Container

Ya

N/A

Kontainer yang menyimpan informasi CNAME.

Node induk: BucketCnameConfiguration

Node anak: Domain

Domain

String

Ya

example.com

Nama domain kustom.

Node induk: Cname

Node anak: tidak ada

CertificateConfiguration

Container

Tidak

N/A

Kontainer untuk konfigurasi sertifikat.

Node induk: Cname

Node anak: CertId, Certificate, PrivateKey, PreviousCertId, Force, dan DeleteCertificate

CertId

String

Tidak

493****-cn-hangzhou

ID sertifikat.

Node induk: CertificateConfiguration

Node anak: tidak ada

Certificate

String

Tidak

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

Kunci publik sertifikat.

Node induk: CertificateConfiguration

Node anak: tidak ada

PrivateKey

String

Tidak

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

Kunci privat sertifikat.

Node induk: CertificateConfiguration

Node anak: tidak ada

PreviousCertId

String

Tidak

493****-cn-hangzhou

ID sertifikat. Jika parameter Force tidak disetel ke true, server OSS akan memeriksa apakah nilai parameter Force sesuai dengan ID sertifikat saat ini. Jika nilainya tidak sesuai dengan ID sertifikat, kesalahan akan dikembalikan.

Penting

Jika Anda tidak menentukan parameter PreviousCertId saat mengikat sertifikat, Anda harus menyetel parameter Force ke true.

Node induk: CertificateConfiguration

Node anak: tidak ada

Force

String

Tidak

true

Menentukan apakah akan menimpa sertifikat. Nilai valid:

  • true: menimpa sertifikat.

  • false: tidak menimpa sertifikat.

Node induk: CertificateConfiguration

Node anak: tidak ada

DeleteCertificate

String

Tidak

true

Menentukan apakah akan menghapus sertifikat. Nilai valid:

  • true: menghapus sertifikat.

  • false: tidak menghapus sertifikat.

Node induk: CertificateConfiguration

Node anak: tidak ada

Header respons

Semua header dalam respons terhadap permintaan PutCname adalah header umum. Untuk informasi lebih lanjut, lihat Header Respons Umum.

Contoh

  • Permintaan Sampel

    • Petakan Nama Domain

      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>
    • Ikat Sertifikat ke Nama Domain

      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>
    • Lepaskan Sertifikat dari Nama Domain

      Jika Anda tidak ingin nama domain terus menggunakan sertifikat, Anda dapat melepaskannya.

      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>
  • Respons Sukses Sampel

    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 OSS

Anda dapat menggunakan SDK OSS untuk bahasa pemrograman berikut guna memanggil PutCname:

ossutil

Untuk informasi tentang perintah ossutil yang sesuai dengan operasi PutCname, lihat put-cname.

Kode kesalahan

Kode kesalahan

Kode status HTTP

Deskripsi

InvalidArgument

400

Pesan kesalahan dikembalikan karena format catatan CNAME tidak valid. Anda dapat melihat bidang kesalahan dan penyebab kesalahan dalam konten XML yang dikembalikan.

NeedVerifyDomainOwnership

403

Pesan kesalahan dikembalikan karena kepemilikan nama domain belum diverifikasi.

Lakukan langkah-langkah berikut untuk memverifikasi kepemilikan nama domain:

  1. Panggil operasi CreateCnameToken untuk membuat token CNAME yang digunakan untuk memverifikasi kepemilikan nama domain.

    Catatan

    Secara default, token CNAME kedaluwarsa dalam 72 jam setelah dibuat. Jika token CNAME baru dibuat selama periode validitas token yang ada, token CNAME yang ada akan dikembalikan.

  2. Tambahkan catatan TXT di sistem penyedia nama domain Anda.

    Sebagai contoh, tambahkan catatan TXT untuk domain kustom example.com. Saat Anda menambahkan catatan, pilih TXT sebagai tipe catatan, masukkan _dnsauth.example sebagai host record, dan masukkan token CNAME yang dikembalikan dari Langkah 1 sebagai nilai catatan. Pertahankan pengaturan default untuk parameter lainnya. Untuk informasi lebih lanjut tentang cara menambahkan catatan CNAME, lihat bagian "Tambahkan catatan CNAME secara manual" dalam topik Petakan nama domain kustom.

    Catatan

    Setelah Anda menambahkan catatan TXT, catatan TXT membutuhkan beberapa menit untuk berlaku.

  3. Panggil operasi PutCname untuk memetakan nama domain kustom.

CnameDenied

403

Pesan kesalahan dikembalikan karena nama domain sedang digunakan.

CnameIsForbidden

403

Pesan kesalahan dikembalikan karena nama domain dicadangkan untuk OSS dan tidak dapat dipetakan.

CnameIsRisk

403

Pesan kesalahan dikembalikan karena nama domain merupakan domain berisiko tinggi dan tidak dapat dipetakan.

NoSuchCnameInRecord

404

Pesan kesalahan dikembalikan karena nama domain yang ditentukan tidak memiliki lisensi ICP. Untuk informasi lebih lanjut tentang cara mengajukan pendaftaran ICP untuk nama domain, lihat Apa itu Domains?.

CnameAlreadyExists

409

Penyebab potensial:

  • Nama domain dipetakan ke bucket lain yang dimiliki oleh akun saat ini.

    Deskripsi masalah: Nilai parameter CnameType dalam pesan kesalahan yang dikembalikan adalah CNAME_OSS.

  • Nama domain digunakan untuk pemrosesan gambar.

    Deskripsi masalah: Nilai parameter CnameType dalam pesan kesalahan yang dikembalikan adalah CNAME_IMG.

Untuk menyelesaikan masalah di atas, Anda harus menghapus pemetaan antara nama domain saat ini dan bucket. Untuk informasi lebih lanjut, lihat bagian "CnameAlreadyExists" dalam topik Kode status HTTP 409.