全部产品
Search
文档中心

Object Storage Service:Menyambungkan nama domain kustom (Python SDK V1)

更新时间:Nov 29, 2025

Setelah Anda mengunggah objek ke bucket, Object Storage Service (OSS) secara otomatis menghasilkan URL untuk mengakses objek tersebut. URL ini berisi titik akhir publik bucket. Untuk mengakses objek melalui nama domain kustom, Anda harus menambahkan record CNAME guna menghubungkan nama domain kustom ke bucket tempat objek disimpan.

Catatan penggunaan

  • Topik ini menggunakan titik akhir publik wilayah China (Hangzhou). Jika Anda ingin mengakses OSS dari layanan Alibaba Cloud lainnya dalam wilayah yang sama dengan OSS, gunakan titik akhir internal. Untuk informasi selengkapnya mengenai wilayah dan titik akhir OSS, lihat Wilayah dan titik akhir.

  • Topik ini memperoleh kredensial akses dari variabel lingkungan. Untuk informasi selengkapnya tentang cara mengonfigurasi kredensial akses, lihat Konfigurasikan kredensial akses menggunakan OSS SDK untuk Python 1.0.

  • Topik ini membuat instans OSSClient menggunakan titik akhir OSS. Jika Anda ingin membuat instans OSSClient menggunakan nama domain kustom atau Security Token Service (STS), lihat Inisialisasi.

Buat CnameToken

Kode berikut menunjukkan cara membuat CnameToken.

# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider

# Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())

# Tentukan titik akhir wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir menjadi https://oss-cn-hangzhou.aliyuncs.com.
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Tentukan wilayah tempat bucket berada, seperti cn-hangzhou. Perhatikan bahwa parameter ini wajib untuk tanda tangan V4.
region = "cn-hangzhou"

# Atur nama bucket menjadi examplebucket.
bucket = oss2.Bucket(auth, endpoint, "examplebucket", region=region)

# Tentukan nama domain kustom.
test_domain = 'www.example.com'
# Buat CnameToken.
result = bucket.create_bucket_cname_token(test_domain)
# Cetak CNAME.
print(result.cname)
# Cetak CnameToken yang dikembalikan oleh OSS.
print(result.token)
# Cetak waktu kedaluwarsa CnameToken.
print(result.expire_time)

Ambil CnameToken

Kode berikut menunjukkan cara mengambil CnameToken.

# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())

# Tentukan titik akhir wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir menjadi https://oss-cn-hangzhou.aliyuncs.com.
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Tentukan wilayah tempat bucket berada, seperti cn-hangzhou. Perhatikan bahwa parameter ini wajib untuk tanda tangan V4.
region = "cn-hangzhou"

# Atur nama bucket menjadi examplebucket.
bucket = oss2.Bucket(auth, endpoint, "examplebucket", region=region)

# Tentukan nama domain kustom.
test_domain = 'www.example.com'
# Ambil CnameToken.
result = bucket.get_bucket_cname_token(test_domain)
# Cetak CNAME.
print(result.cname)
# Cetak CnameToken yang dikembalikan oleh OSS.
print(result.token)
# Cetak waktu kedaluwarsa CnameToken.
print(result.expire_time)

Tambahkan record CNAME

Kode berikut menunjukkan cara menambahkan record CNAME.

# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider

# Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())

# Tentukan titik akhir wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir menjadi https://oss-cn-hangzhou.aliyuncs.com.
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Tentukan wilayah tempat bucket berada, seperti cn-hangzhou. Perhatikan bahwa parameter ini wajib untuk tanda tangan V4.
region = "cn-hangzhou"

# Atur nama bucket menjadi examplebucket.
bucket = oss2.Bucket(auth, endpoint, "examplebucket", region=region)

# Tentukan nama domain kustom.
test_domain = 'www.example.com'
# Tentukan ID sertifikat sebelumnya.
previous_cert_id = '001'
certificate = '''-----BEGIN CERTIFICATE-----
MIIDWzCCAkOgA******KTgnwyOGU9cv+mxA=
-----END CERTIFICATE-----'''
# Atur kunci privat sertifikat.
private_key = '''-----BEGIN PRIVATE KEY-----
MIIEvQIBADAN******1i2t41Q/SC3HUGC5mJjpO8=
-----END PRIVATE KEY-----
'''

cert = oss2.models.CertInfo(certificate=certificate, private_key=private_key)
# Atur force=True untuk memaksa menimpa sertifikat sebelumnya.
# Atur delete_certificate untuk menentukan apakah sertifikat akan dihapus. Setel delete_certificate=True untuk menghapus sertifikat. Setel delete_certificate=False untuk tidak menghapus sertifikat.
# cert = oss2.models.CertInfo(certificate=certificate, private_key=private_key, force=True, delete_certificate=False)
input = oss2.models.PutBucketCnameRequest(test_domain, cert)
bucket.put_bucket_cname(input)

Lihat record CNAME

Kode berikut menunjukkan cara melihat record CNAME suatu bucket.

# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())

# Tentukan titik akhir wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir menjadi https://oss-cn-hangzhou.aliyuncs.com.
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Tentukan wilayah tempat bucket berada, seperti cn-hangzhou. Perhatikan bahwa parameter ini wajib untuk tanda tangan V4.
region = "cn-hangzhou"

# Atur nama bucket menjadi examplebucket.
bucket = oss2.Bucket(auth, endpoint, "examplebucket", region=region)

list_result = bucket.list_bucket_cname()
for c in list_result.cname:
    # Cetak ID sertifikat.
    print(c.certificate.cert_id)
    # Cetak sumber sertifikat.
    print(c.certificate.type)
    # Cetak status sertifikat.
    print(c.certificate.status)
    # Cetak nama domain kustom.
    print(c.domain)
    # Cetak waktu saat nama domain kustom di-bind.
    print(c.last_modified)
    # Cetak status nama domain.
    print(c.status)

Hapus record CNAME

Kode berikut menunjukkan cara menghapus record CNAME.

# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())

# Tentukan titik akhir wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir menjadi https://oss-cn-hangzhou.aliyuncs.com.
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Tentukan wilayah tempat bucket berada, seperti cn-hangzhou. Perhatikan bahwa parameter ini wajib untuk tanda tangan V4.
region = "cn-hangzhou"

# Atur nama bucket menjadi examplebucket.
bucket = oss2.Bucket(auth, endpoint, "examplebucket", region=region)

# Tentukan nama domain kustom.
test_domain = 'www.example.com'
# Hapus record CNAME.
bucket.delete_bucket_cname(test_domain)

Referensi

  • Untuk informasi selengkapnya mengenai operasi API untuk membuat CnameToken guna verifikasi kepemilikan domain, lihat CreateCnameToken.

  • Untuk informasi selengkapnya mengenai operasi API untuk mengambil CnameToken, lihat GetCnameToken.

  • Untuk informasi selengkapnya mengenai operasi API untuk menambahkan record CNAME, lihat PutCname.

  • Untuk informasi selengkapnya mengenai operasi API untuk melihat record CNAME, lihat ListCname.

  • Untuk informasi selengkapnya mengenai operasi API untuk menghapus record CNAME, lihat DeleteCname.