Topik ini menjelaskan cara mendaftarkan semua objek dalam sebuah bucket menggunakan Object Storage Service (OSS) SDK untuk Python.
Catatan penggunaan
Kode contoh dalam topik ini menggunakan ID Wilayah
cn-hangzhoudari Wilayah Tiongkok (Hangzhou). Secara default, titik akhir publik digunakan untuk mengakses sumber daya dalam sebuah bucket. Jika Anda ingin mengakses sumber daya di bucket tersebut dengan 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.Untuk menampilkan objek, Anda harus memiliki izin
oss:ListObjects. Untuk informasi lebih lanjut, lihat Melampirkan Kebijakan Kustom ke Pengguna RAM.
Kode contoh
Berikut adalah kode contoh yang menunjukkan cara memanggil operasi ListObjectsV2 untuk mendaftarkan semua objek dalam sebuah bucket:
import argparse
import alibabacloud_oss_v2 as oss
# Buat parser parameter baris perintah.
parser = argparse.ArgumentParser(description="contoh daftar objek v2")
# Tentukan parameter --region, yang menentukan wilayah tempat bucket berada. Parameter baris perintah ini wajib.
parser.add_argument('--region', help='Wilayah tempat bucket berada.', required=True)
# Tentukan parameter --bucket, yang menentukan nama bucket. Parameter baris perintah ini wajib.
parser.add_argument('--bucket', help='Nama bucket.', required=True)
# Tentukan parameter --endpoint, yang menentukan titik akhir yang dapat digunakan layanan lain untuk mengakses OSS. Parameter baris perintah ini opsional.
parser.add_argument('--endpoint', help='Nama domain yang dapat digunakan layanan lain untuk mengakses OSS')
def main():
args = parser.parse_args() # Parsing parameter baris perintah.
# Dapatkan kredensial akses dari variabel lingkungan untuk otentikasi.
credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
# Muat konfigurasi default dari SDK dan tentukan penyedia kredensial.
cfg = oss.config.load_default()
cfg.credentials_provider = credentials_provider
# Atur wilayah dalam konfigurasi ke yang ditentukan di baris perintah.
cfg.region = args.region
# Jika parameter endpoint diberikan, tentukan titik akhir.
if args.endpoint is not None:
cfg.endpoint = args.endpoint
# Gunakan konfigurasi untuk membuat instance OSSClient.
client = oss.Client(cfg)
# Buat paginator untuk memungkinkan operasi ListObjectsV2 mendaftarkan objek.
paginator = client.list_objects_v2_paginator()
# Telusuri setiap halaman dari objek yang didaftarkan.
for page in paginator.iter_page(oss.ListObjectsV2Request(
bucket=args.bucket
)
):
# Telusuri setiap objek pada setiap halaman.
for o in page.contents:
# Tampilkan nama, ukuran, dan waktu modifikasi terakhir objek.
print(f'Objek: {o.key}, {o.size}, {o.last_modified}')
if __name__ == "__main__":
main() # Tentukan titik masuk dalam fungsi utama skrip saat skrip dijalankan langsung.Skenario umum
Tampilkan semua objek dalam direktori tertentu
Daftarkan objek yang namanya mengandung awalan tertentu
Daftarkan sejumlah objek tertentu
Daftarkan semua objek dari posisi tertentu
Referensi
Untuk kode contoh lengkap yang digunakan untuk mendaftarkan objek, kunjungi list_objects_v2.py.