CreateCnameToken membuat token CNAME yang diperlukan untuk memverifikasi kepemilikan nama domain. Gunakan parameter wildcard untuk menentukan apakah token akan dibuat untuk CNAME eksak atau CNAME wildcard.
Catatan penggunaan
Secara default, token CNAME kedaluwarsa 72 jam setelah dibuat. Jika operasi ini dipanggil kembali selama token masih berlaku, OSS akan mengembalikan token yang sudah ada.
Untuk Agentic Bucket, parameter
wildcardwajib diisi dan tidak boleh kosong:wildcard=truemembuat token untuk CNAME wildcard, sedangkanwildcard=falsemembuat token untuk CNAME eksak.Untuk bucket standar, pembuatan token untuk CNAME eksak berfungsi sama seperti pada operasi CNAME OSS yang sudah ada, tanpa memerlukan parameter tambahan.
Sintaksis permintaan
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>Header permintaan
Operasi ini hanya menggunakan header permintaan umum. Untuk informasi selengkapnya, lihat Header HTTP umum.
Parameter permintaan
Parameter | Tipe | Wajib | Contoh | Deskripsi |
wildcard | String | Bucket standar: Tidak Agentic Bucket: Ya | true | Menentukan apakah akan membuat token untuk CNAME wildcard. Nilai yang valid:
Untuk Agentic Bucket, parameter ini wajib diisi. Tetapkan secara eksplisit ke true atau false; tidak boleh kosong. Untuk bucket standar, parameter ini opsional dan default-nya adalah false. |
Parameter wildcard memiliki nilai yang berbeda tergantung tipe bucket:
Tipe bucket | Parameter dihilangkan | wildcard=false | wildcard=true |
Bucket standar | Diizinkan. Membuat token untuk CNAME eksak. | Diizinkan. Membuat token untuk CNAME eksak. | Tidak diizinkan |
Agentic Bucket | Tidak diizinkan | Diizinkan. Membuat token untuk CNAME eksak. | Diizinkan. Membuat token untuk CNAME wildcard. |
Satu token untuk pasangan (bucket, CNAME) mencakup cakupan eksak maupun wildcard sekaligus.
Elemen permintaan
Elemen | Tipe | Wajib | Contoh | Deskripsi |
BucketCnameConfiguration | Kontainer | Ya | N/A | Kontainer yang menyimpan konfigurasi CNAME. Node induk: tidak ada Node anak: Cname |
Cname | Kontainer | Ya | N/A | Kontainer yang menyimpan informasi CNAME. Node induk: BucketCnameConfiguration Node anak: Domain |
Domain | String | Ya | example.com | Nama domain kustom. Untuk membuat token untuk CNAME eksak, atur elemen ini ke nama domain lengkap, misalnya console.example.com. Untuk membuat token untuk CNAME wildcard, atur elemen ini ke nama domain dasar tanpa awalan Node induk: Cname Node anak: tidak ada |
Idempotensi
Idempotensi operasi CreateCnameToken bergantung pada tipe bucket dan status pemetaan CNAME ke bucket tersebut:
Bucket standar: Jika CNAME sudah dipetakan ke bucket dalam status apa pun selain deleted, OSS mengembalikan
NoNeedCreateCnameToken, sehingga tidak perlu membuat token baru.Agentic Bucket: OSS mengembalikan
NoNeedCreateCnameTokenhanya jika nama domain dasar telah dipetakan ke CNAME dengan tipe yang sama pada Agentic Bucket tersebut.
Elemen respons
Elemen | Type | Contoh | Deskripsi |
CnameToken | Kontainer | N/A | Kontainer yang menyimpan token CNAME. Node induk: tidak ada Node anak: Bucket, Cname, Token, dan ExpireTime |
Bucket | String | examplebucket | Nama bucket tempat CNAME dipetakan. Node induk: CnameToken Node anak: tidak ada |
Cname | String | example.com | Nama CNAME yang dipetakan. Node induk: CnameToken Node anak: tidak ada |
Token | String | be1d49d863dea9ffeff3df7d6455**** | Token CNAME yang dikembalikan oleh OSS. Node induk: CnameToken Node anak: tidak ada |
ExpireTime | String | Wed, 23 Feb 2022 21:16:37 GMT | Waktu kedaluwarsa token CNAME. Node induk: CnameToken Node anak: tidak ada |
Contoh
Contoh permintaan
Buat token CNAME untuk bucket standar
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>Buat token CNAME untuk CNAME wildcard dari 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>Buat token CNAME untuk CNAME eksak dari 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>
Contoh respons
Token CNAME berhasil dibuat.
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>Jumlah token CNAME melebihi batas maksimum.
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>
OSS SDKs
OSS SDK berikut mendukung operasi CreateCnameToken:
ossutil
Untuk informasi tentang perintah ossutil yang sesuai dengan operasi CreateCnameToken, lihat create-cname-token.
Kode error
Kode error | Kode status HTTP | Deskripsi |
InvalidArgument | 400 | Penyebab error berikut mungkin terjadi:
|
TooManyCnameToken | 400 | Jumlah token yang dibuat untuk bucket yang sama melebihi batas maksimum. |
NoNeedCreateCnameToken | 200 | CNAME sudah dipetakan ke bucket saat ini, sehingga Anda tidak perlu membuat token. Untuk bucket standar, OSS mengembalikan respons ini ketika CNAME sudah dipetakan ke bucket saat ini dalam status apa pun selain deleted. Untuk Agentic Bucket, OSS mengembalikan respons ini hanya jika nama domain dasar sudah dipetakan ke Agentic Bucket saat ini oleh CNAME dengan tipe yang sama. |
MethodNotAllowed | 405 | Fitur CNAME tidak diaktifkan untuk tipe bucket target. |