Setelah mengunggah objek ke bucket, Object Storage Service (OSS) secara otomatis menghasilkan URL yang mencakup titik akhir publik bucket untuk objek tersebut. Anda dapat menggunakan URL ini untuk mengakses objek. Jika ingin mengakses objek menggunakan nama domain kustom, tambahkan record CNAME untuk memetakan nama domain kustom ke bucket tempat objek disimpan.
Catatan penggunaan
Kode contoh dalam topik ini menggunakan ID Wilayah
cn-hangzhoudari Wilayah Hangzhou, Tiongkok. Secara default, titik akhir publik digunakan untuk mengakses sumber daya dalam bucket. Jika Anda ingin mengakses sumber daya dalam bucket menggunakan layanan Alibaba Cloud lainnya di wilayah yang sama dengan bucket tersebut, gunakan titik akhir internal. Untuk informasi lebih lanjut tentang wilayah dan titik akhir OSS, lihat Wilayah dan Titik Akhir.
Contoh
Buat token CNAME
Kode contoh berikut menunjukkan cara membuat token CNAME:
import argparse
import alibabacloud_oss_v2 as oss
# Buat parser parameter baris perintah dan jelaskan tujuan skrip. Contoh ini menjelaskan cara membuat token CNAME.
parser = argparse.ArgumentParser(description="buat contoh token cname")
# Tentukan parameter baris perintah, termasuk wilayah, nama bucket, titik akhir, dan nama domain kustom.
parser.add_argument('--region', help='Wilayah tempat bucket berada.', required=True)
parser.add_argument('--bucket', help='Nama bucket.', required=True)
parser.add_argument('--endpoint', help='Nama domain yang dapat digunakan layanan lain untuk mengakses OSS')
parser.add_argument('--domain', help='Nama domain kustom.', required=True)
def main():
# Parsing parameter baris perintah untuk mendapatkan nilai yang dimasukkan oleh pengguna.
args = parser.parse_args()
# Dapatkan kredensial akses dari variabel lingkungan untuk otentikasi identitas.
credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
# Gunakan konfigurasi default SDK untuk membuat objek konfigurasi dan tentukan penyedia kredensial.
cfg = oss.config.load_default()
cfg.credentials_provider = credentials_provider
# Tentukan atribut wilayah objek konfigurasi berdasarkan parameter baris perintah yang diberikan oleh pengguna.
cfg.region = args.region
# Jika titik akhir kustom diberikan, ubah parameter titik akhir dalam objek konfigurasi.
if args.endpoint is not None:
cfg.endpoint = args.endpoint
# Gunakan konfigurasi di atas untuk menginisialisasi instance OSSClient dan izinkan instance tersebut berinteraksi dengan OSS.
client = oss.Client(cfg)
# Kirim permintaan untuk membuat token CNAME untuk bucket.
result = client.create_cname_token(oss.CreateCnameTokenRequest(
bucket=args.bucket, # Nama bucket.
bucket_cname_configuration=oss.BucketCnameConfiguration(
cname=oss.Cname(
domain=args.domain, # Nama domain kustom.
),
),
))
# Tampilkan kode status hasil operasi dan informasi relevan lainnya untuk memeriksa status permintaan dan detail token CNAME.
print(f'kode status: {result.status_code},'
f' ID permintaan: {result.request_id},'
f' cname: {result.cname_token.cname if hasattr(result.cname_token, "cname") else "Tidak diatur"},'
f' token: {result.cname_token.token if hasattr(result.cname_token, "token") else "Tidak diatur"},'
f' waktu kedaluwarsa: {result.cname_token.expire_time.strftime("%Y-%m-%dT%H:%M:%S.000Z") if hasattr(result.cname_token, "expire_time") else "Tidak diatur"},'
f' bucket: {result.cname_token.bucket if hasattr(result.cname_token, "bucket") else "Tidak diatur"},'
)
# Panggil fungsi utama untuk memulai logika pemrosesan saat skrip dijalankan langsung.
if __name__ == "__main__":
main() # Tentukan titik masuk dalam fungsi skrip. Aliran program kontrol dimulai di sini.Kueri token CNAME
Kode contoh berikut menunjukkan cara mengkueri token CNAME:
import argparse
import alibabacloud_oss_v2 as oss
# Buat parser parameter baris perintah dan jelaskan tujuan skrip. Contoh ini menjelaskan cara mengkueri token CNAME.
parser = argparse.ArgumentParser(description="dapatkan contoh token cname")
# Tentukan parameter baris perintah, termasuk wilayah, nama bucket, titik akhir, dan record CNAME.
parser.add_argument('--region', help='Wilayah tempat bucket berada.', required=True)
parser.add_argument('--bucket', help='Nama bucket.', required=True)
parser.add_argument('--endpoint', help='Nama domain yang dapat digunakan layanan lain untuk mengakses OSS')
parser.add_argument('--cname', help='Nama record CNAME yang dipetakan ke bucket.', required=True)
def main():
# Parsing parameter baris perintah untuk mendapatkan nilai yang dimasukkan oleh pengguna.
args = parser.parse_args()
# Dapatkan kredensial akses dari variabel lingkungan untuk otentikasi identitas.
credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
# Gunakan konfigurasi default SDK untuk membuat objek konfigurasi dan tentukan penyedia kredensial.
cfg = oss.config.load_default()
cfg.credentials_provider = credentials_provider
# Tentukan atribut wilayah objek konfigurasi berdasarkan parameter baris perintah yang diberikan oleh pengguna.
cfg.region = args.region
# Jika titik akhir kustom diberikan, ubah parameter titik akhir dalam objek konfigurasi.
if args.endpoint is not None:
cfg.endpoint = args.endpoint
# Gunakan konfigurasi di atas untuk menginisialisasi instance OSSClient dan izinkan instance tersebut berinteraksi dengan OSS.
client = oss.Client(cfg)
# Kirim permintaan untuk mengkueri token CNAME bucket dan record CNAME.
result = client.get_cname_token(oss.GetCnameTokenRequest(
bucket=args.bucket, # Nama bucket.
cname=args.cname, # Nama record CNAME untuk nama domain kustom.
))
# Tampilkan kode status hasil operasi dan informasi relevan lainnya untuk memeriksa status permintaan dan detail token CNAME.
print(f'kode status: {result.status_code},'
f' ID permintaan: {result.request_id},'
f' cname: {result.cname_token.cname if hasattr(result.cname_token, "cname") else "Tidak diatur"},'
f' token: {result.cname_token.token if hasattr(result.cname_token, "token") else "Tidak diatur"},'
f' waktu kedaluwarsa: {result.cname_token.expire_time.strftime("%Y-%m-%dT%H:%M:%S.000Z") if hasattr(result.cname_token, "expire_time") else "Tidak diatur"},'
f' bucket: {result.cname_token.bucket if hasattr(result.cname_token, "bucket") else "Tidak diatur"},'
)
# Panggil fungsi utama untuk memulai logika pemrosesan saat skrip dijalankan langsung.
if __name__ == "__main__":
main() # Tentukan titik masuk dalam fungsi skrip. Aliran program kontrol dimulai di sini.Tambahkan record CNAME
Kode contoh berikut menunjukkan cara menambahkan record CNAME untuk memetakan domain kustom ke bucket:
import argparse
import alibabacloud_oss_v2 as oss
# Buat parser parameter baris perintah dan jelaskan tujuan skrip. Contoh ini menjelaskan cara menambahkan record CNAME yang digunakan untuk memetakan domain kustom ke bucket.
parser = argparse.ArgumentParser(description="contoh tambahkan cname")
# Tentukan parameter baris perintah, termasuk wilayah, nama bucket, titik akhir, dan nama domain kustom.
parser.add_argument('--region', help='Wilayah tempat bucket berada.', required=True)
parser.add_argument('--bucket', help='Nama bucket.', required=True)
parser.add_argument('--endpoint', help='Nama domain yang dapat digunakan layanan lain untuk mengakses OSS')
parser.add_argument('--domain', help='Nama domain kustom.', required=True)
def main():
# Parsing parameter baris perintah untuk mendapatkan nilai yang dimasukkan oleh pengguna.
args = parser.parse_args()
# Dapatkan kredensial akses dari variabel lingkungan untuk otentikasi identitas.
credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
# Gunakan konfigurasi default SDK untuk membuat objek konfigurasi dan tentukan penyedia kredensial.
cfg = oss.config.load_default()
cfg.credentials_provider = credentials_provider
# Tentukan atribut wilayah objek konfigurasi berdasarkan parameter baris perintah yang diberikan oleh pengguna.
cfg.region = args.region
# Jika titik akhir kustom diberikan, ubah parameter titik akhir dalam objek konfigurasi.
if args.endpoint is not None:
cfg.endpoint = args.endpoint
# Gunakan konfigurasi di atas untuk menginisialisasi instance OSSClient dan izinkan instance tersebut berinteraksi dengan OSS.
client = oss.Client(cfg)
# Tentukan parameter sertifikat SSL dan asosiasikan sertifikat SSL dengan nama domain kustom.
cert_id='493****-cn-hangzhou ' # ID sertifikat SSL.
certificate = '''-----BEGIN CERTIFICATE-----
MIIDhDCCAmwCCQCFs8ixARsyrDANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMC
**** -----END CERTIFICATE-----''' # Isi sertifikat SSL.
private_key = '''-----BEGIN CERTIFICATE-----
MIIDhDCCAmwCCQCFs8ixARsyrDANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMC
**** -----END CERTIFICATE-----''' # Isi kunci privat.
previous_cert_id='493****-cn-hangzhou ' # ID sertifikat SSL asli.
force = True # Paksa timpa sertifikat SSL asli.
# Kirim permintaan untuk menambahkan record CNAME yang digunakan untuk memetakan domain kustom ke bucket dan asosiasikan sertifikat SSL dengan nama domain kustom.
result = client.put_cname(oss.PutCnameRequest(
bucket=args.bucket, # Nama bucket.
bucket_cname_configuration=oss.BucketCnameConfiguration(
cname=oss.Cname(
domain=args.domain, # Nama domain kustom.
certificate_configuration=oss.CertificateConfiguration(
certificate=certificate, # Isi sertifikat SSL.
private_key=private_key, # Isi kunci privat.
previous_cert_id=previous_cert_id, # ID sertifikat SSL asli.
force=force, # Paksa timpa sertifikat SSL asli.
cert_id=cert_id, # ID sertifikat SSL baru.
),
),
),
))
# Tampilkan kode status hasil operasi dan ID permintaan untuk memeriksa status permintaan.
print(f'kode status: {result.status_code},'
f' ID permintaan: {result.request_id},'
)
"""
# Opsional. Jika Anda ingin menghapus sertifikat SSL, harap hapus deskripsi untuk kode berikut.
result = client.put_cname(oss.PutCnameRequest(
bucket=args.bucket,
bucket_cname_configuration=oss.BucketCnameConfiguration(
cname=oss.Cname(
domain=args.domain,
certificate_configuration=oss.CertificateConfiguration(
delete_certificate=True, # Hapus sertifikat SSL.
),
),
),
))
"""
# Panggil fungsi utama untuk memulai logika pemrosesan saat skrip dijalankan langsung.
if __name__ == "__main__":
main() # Tentukan titik masuk dalam fungsi skrip. Aliran program kontrol dimulai di sini.Daftar record CNAME
Kode contoh berikut menunjukkan cara mencantumkan record CNAME bucket:
import argparse
import alibabacloud_oss_v2 as oss
# Buat parser parameter baris perintah dan jelaskan tujuan skrip. Contoh ini menjelaskan cara mencantumkan record CNAME bucket.
parser = argparse.ArgumentParser(description="daftar contoh cname")
# Tentukan parameter baris perintah, termasuk wilayah, nama bucket, dan titik akhir. Parameter titik akhir bersifat opsional.
parser.add_argument('--region', help='Wilayah tempat bucket berada.', required=True)
parser.add_argument('--bucket', help='Nama bucket.', required=True)
parser.add_argument('--endpoint', help='Nama domain yang dapat digunakan layanan lain untuk mengakses OSS')
def main():
# Parsing parameter baris perintah untuk mendapatkan nilai yang dimasukkan oleh pengguna.
args = parser.parse_args()
# Dapatkan kredensial akses dari variabel lingkungan untuk otentikasi identitas.
credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
# Gunakan konfigurasi default SDK untuk membuat objek konfigurasi dan tentukan penyedia kredensial.
cfg = oss.config.load_default()
cfg.credentials_provider = credentials_provider
# Tentukan atribut wilayah objek konfigurasi berdasarkan parameter baris perintah yang diberikan oleh pengguna.
cfg.region = args.region
# Jika titik akhir kustom diberikan, ubah parameter titik akhir dalam objek konfigurasi.
if args.endpoint is not None:
cfg.endpoint = args.endpoint
# Gunakan konfigurasi di atas untuk menginisialisasi instance OSSClient dan izinkan instance tersebut berinteraksi dengan OSS.
client = oss.Client(cfg)
# Kirim permintaan untuk mencantumkan record CNAME bucket.
result = client.list_cname(oss.ListCnameRequest(
bucket=args.bucket, # Nama bucket.
))
# Tampilkan kode status hasil operasi, ID permintaan, dan informasi relevan lainnya untuk memeriksa status permintaan dan record CNAME.
print(f'kode status: {result.status_code},'
f' ID permintaan: {result.request_id},'
f' bucket: {result.Bucket},' # Nama bucket.
f' pemilik: {result.owner},' # Pemilik bucket.
)
# Jika ada record CNAME, lakukan iterasi dan tampilkan detail setiap record CNAME.
if result.cnames:
for r in result.cnames:
# Tampilkan nama domain, waktu modifikasi terakhir, status, dan informasi sertifikat SSL (jika ada) dari record CNAME.
certificate_info = (f"sidik jari: {r.certificate.fingerprint}, "
f"tanggal mulai valid: {r.certificate.valid_start_date}, "
f"tanggal akhir valid: {r.certificate.valid_end_date}, "
f"jenis: {r.certificate.type}, "
f"ID sertifikat: {r.certificate.cert_id}, "
f"status: {r.certificate.status}, "
f"tanggal pembuatan: {r.certificate.creation_date}") if r.certificate else "Tidak ada sertifikat"
print(f'domain: {r.domain}, '
f'terakhir dimodifikasi: {r.last_modified}, '
f'status: {r.status}, '
f'sertifikat: {certificate_info}'
)
# Panggil fungsi utama untuk memulai logika pemrosesan saat skrip dijalankan langsung.
if __name__ == "__main__":
main() # Tentukan titik masuk dalam fungsi skrip. Aliran program kontrol dimulai di sini.Hapus record CNAME
Kode contoh berikut menunjukkan cara menghapus record CNAME yang digunakan untuk memetakan domain kustom ke bucket:
import argparse
import alibabacloud_oss_v2 as oss
# Buat parser parameter baris perintah dan jelaskan tujuan skrip. Contoh ini menjelaskan cara menghapus record CNAME yang digunakan untuk memetakan domain kustom ke bucket.
parser = argparse.ArgumentParser(description="hapus contoh cname")
# Tentukan parameter baris perintah, termasuk wilayah, nama bucket, titik akhir, dan nama domain kustom.
parser.add_argument('--region', help='Wilayah tempat bucket berada.', required=True)
parser.add_argument('--bucket', help='Nama bucket.', required=True)
parser.add_argument('--endpoint', help='Nama domain yang dapat digunakan layanan lain untuk mengakses OSS')
parser.add_argument('--domain', help='Nama domain kustom.', required=True)
def main():
# Parsing parameter baris perintah untuk mendapatkan nilai yang dimasukkan oleh pengguna.
args = parser.parse_args()
# Dapatkan kredensial akses dari variabel lingkungan untuk otentikasi identitas.
credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
# Gunakan konfigurasi default SDK untuk membuat objek konfigurasi dan tentukan penyedia kredensial.
cfg = oss.config.load_default()
cfg.credentials_provider = credentials_provider
# Tentukan atribut wilayah objek konfigurasi berdasarkan parameter baris perintah yang diberikan oleh pengguna.
cfg.region = args.region
# Jika titik akhir kustom diberikan, ubah parameter titik akhir dalam objek konfigurasi.
if args.endpoint is not None:
cfg.endpoint = args.endpoint
# Gunakan konfigurasi di atas untuk menginisialisasi instance OSSClient dan izinkan instance tersebut berinteraksi dengan OSS.
client = oss.Client(cfg)
# Kirim permintaan untuk menghapus record CNAME.
result = client.delete_cname(oss.DeleteCnameRequest(
bucket=args.bucket, # Nama bucket.
bucket_cname_configuration=oss.BucketCnameConfiguration(
cname=oss.Cname(
domain=args.domain, # Nama domain kustom.
),
),
))
# Tampilkan kode status hasil operasi dan ID permintaan untuk memeriksa status permintaan.
print(f'kode status: {result.status_code},'
f' ID permintaan: {result.request_id},'
)
# Panggil fungsi utama untuk memulai logika pemrosesan saat skrip dijalankan langsung.
if __name__ == "__main__":
main() # Tentukan titik masuk dalam fungsi skrip. Aliran program kontrol dimulai di sini.Referensi
Untuk kode contoh lengkap yang digunakan untuk membuat token CNAME untuk verifikasi kepemilikan domain, kunjungi create_cname_token.py.
Untuk kode contoh lengkap yang digunakan untuk mengkueri token CNAME, kunjungi get_cname_token.py.
Untuk kode contoh lengkap yang digunakan untuk menambahkan record CNAME, kunjungi put_cname.py.
Untuk kode contoh lengkap yang digunakan untuk mencantumkan record CNAME, kunjungi list_cname.py.
Untuk kode contoh lengkap yang digunakan untuk menghapus record CNAME, kunjungi delete_cname.py.