Topik ini menjelaskan cara mencantumkan bucket yang memenuhi kondisi tertentu di semua Wilayah dalam akun saat ini.
Perhatian
Kode contoh dalam topik ini menggunakan ID Wilayah Hangzhou, Tiongkok
cn-hangzhou. Secara default, Titik akhir publik digunakan. Jika Anda ingin mengakses OSS dari layanan Alibaba Cloud lainnya di wilayah yang sama, gunakan Titik akhir internal. Untuk informasi lebih lanjut tentang pemetaan antara Wilayah OSS dan Titik akhir, lihat Wilayah dan Titik akhir OSS.Contoh dalam topik ini menggunakan Variabel lingkungan untuk membaca kredensial akses. Untuk informasi lebih lanjut tentang cara mengonfigurasi kredensial akses, lihat Konfigurasikan Kredensial Akses.
Untuk mencantumkan bucket, Anda harus memiliki izin
oss:ListBuckets. Untuk informasi lebih lanjut, lihat Berikan Izin Kustom kepada Pengguna RAM.Saat menggunakan SDK untuk mencantumkan bucket, Anda dapat menentukan ID kelompok sumber daya untuk menyaring bucket dalam kelompok sumber daya tertentu.
Secara default, parameter ID kelompok sumber daya tidak disertakan dalam permintaan untuk mencantumkan bucket. Oleh karena itu, hasil XML tidak berisi informasi kelompok sumber daya.
Jika permintaan menyertakan parameter ID kelompok sumber daya, OSS mengembalikan semua bucket yang termasuk dalam kelompok sumber daya tersebut.
Jika permintaan tidak menyertakan parameter ID kelompok sumber daya, OSS mengembalikan semua bucket yang dimiliki oleh peminta.
Kode contoh
Gunakan kode berikut untuk mencantumkan semua bucket di semua Wilayah dalam akun saat ini.
import argparse
import alibabacloud_oss_v2 as oss
# Buat pengurai argumen baris perintah dan jelaskan tujuan skrip: Contoh ini menunjukkan cara mencantumkan semua bucket di OSS.
parser = argparse.ArgumentParser(description="contoh daftar bucket")
# Tambahkan argumen baris perintah --region, yang menentukan Wilayah tempat bucket berada. Ini adalah parameter yang diperlukan.
parser.add_argument('--region', help='Wilayah tempat bucket berada.', required=True)
# Tambahkan argumen baris perintah --endpoint, yang menentukan Nama domain yang dapat digunakan layanan lain untuk mengakses OSS. Ini adalah parameter opsional.
parser.add_argument('--endpoint', help='Nama domain yang dapat digunakan layanan lain untuk mengakses OSS')
def main():
# Analisis parameter yang diberikan pada baris perintah untuk mendapatkan nilai input pengguna.
args = parser.parse_args()
# Muat informasi autentikasi yang diperlukan untuk mengakses OSS dari variabel lingkungan untuk verifikasi identitas.
credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
# Buat objek konfigurasi menggunakan konfigurasi default SDK dan atur penyedia autentikasi.
cfg = oss.config.load_default()
cfg.credentials_provider = credentials_provider
cfg.region = args.region
# Jika titik akhir kustom disediakan, perbarui properti titik akhir dalam objek konfigurasi.
if args.endpoint is not None:
cfg.endpoint = args.endpoint
# Inisialisasi klien OSS menggunakan konfigurasi sebelumnya untuk mempersiapkan interaksi dengan OSS.
client = oss.Client(cfg)
# Buat paginator untuk operasi ListBuckets untuk menangani banyak bucket.
paginator = client.list_buckets_paginator()
# Telusuri hasil yang dipaginasi.
for page in paginator.iter_page(oss.ListBucketsRequest()):
# Untuk setiap bucket di setiap halaman, cetak nama, lokasi, dan tanggal pembuatannya.
for o in page.buckets:
print(f'Bucket: {o.name}, Lokasi: {o.location}, Dibuat: {o.creation_date}')
# Saat skrip ini dieksekusi langsung, panggil fungsi utama untuk memulai logika pemrosesan.
if __name__ == "__main__":
main() # Titik masuk skrip, dari mana alur program dimulai.Skenario
Referensi
Untuk kode contoh lengkap untuk mencantumkan bucket, lihat list_buckets.py.