全部产品
Search
文档中心

Object Storage Service:Menampilkan objek menggunakan OSS SDK untuk Python 2.0

更新时间:Aug 05, 2025

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-hangzhou dari 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

Berikut adalah kode contoh yang menunjukkan cara menentukan parameter prefix untuk mendaftarkan informasi tentang semua objek dalam direktori tertentu, termasuk ukuran objek, waktu modifikasi terakhir, dan nama objek:

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,
            prefix="exampledir/", # Setel parameter prefix ke exampledir/ untuk mendaftarkan semua objek dalam direktori exampledir/.
        )
    ):
        # Telusuri setiap objek pada setiap halaman.
        for o in page.contents:
            # Tampilkan nama, ukuran, dan waktu modifikasi terakhir objek.
            print(f'Objek: {o.key}, Ukuran: {o.size}, Terakhir_dimodifikasi: {o.last_modified}')

if __name__ == "__main__":
    main() # Tentukan titik masuk dalam fungsi utama skrip saat skrip dijalankan langsung.

Daftarkan objek yang namanya mengandung awalan tertentu

Berikut adalah kode contoh yang menunjukkan cara menentukan parameter prefix untuk mendaftarkan informasi tentang objek yang namanya mengandung awalan tertentu, termasuk ukuran objek, waktu modifikasi terakhir, dan nama objek:

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,
            prefix="my-object-", # Setel parameter prefix ke my-object-, yang berarti hanya objek yang namanya mengandung awalan my-object- yang akan didaftarkan.
        )
    ):
        # Telusuri setiap objek pada setiap halaman.
        for o in page.contents:
            # Tampilkan nama, ukuran, dan waktu modifikasi terakhir objek.
            print(f'Objek: {o.key}, Ukuran: {o.size}, Terakhir_dimodifikasi: {o.last_modified}')

if __name__ == "__main__":
    main() # Tentukan titik masuk dalam fungsi utama skrip saat skrip dijalankan langsung.

Daftarkan sejumlah objek tertentu

Berikut adalah kode contoh yang menunjukkan cara menentukan parameter MaxKeys untuk mendaftarkan informasi tentang sejumlah objek tertentu, termasuk ukuran objek, waktu modifikasi terakhir, dan nama objek:

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,
            max_keys=10, # Tentukan bahwa hingga 10 objek dapat dikembalikan per halaman.
        )
    ):
        # Telusuri setiap objek pada setiap halaman.
        for o in page.contents:
            # Tampilkan nama, ukuran, dan waktu modifikasi terakhir objek.
            print(f'Objek: {o.key}, Ukuran: {o.size}, Terakhir_dimodifikasi: {o.last_modified}')

        print('-' * 30)

if __name__ == "__main__":
    main() # Tentukan titik masuk dalam fungsi utama skrip saat skrip dijalankan langsung.

Daftarkan semua objek dari posisi tertentu

Berikut adalah kode contoh yang menunjukkan cara mengonfigurasi parameter StartAfter untuk menentukan posisi awal dari mana operasi pendaftaran dimulai. Semua objek yang namanya secara alfabetis setelah nilai parameter StartAfter akan dikembalikan.

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,
            start_after="my-object", # Tentukan bahwa objek yang namanya secara alfabetis setelah my-object akan didaftarkan.
        )
    ):
        # Telusuri setiap objek pada setiap halaman.
        for o in page.contents:
            # Tampilkan nama, ukuran, dan waktu modifikasi terakhir objek.
            print(f'Objek: {o.key}, Ukuran: {o.size}, Terakhir_dimodifikasi: {o.last_modified}')

        print('-' * 30)

if __name__ == "__main__":
    main() # Tentukan titik masuk dalam fungsi utama skrip saat skrip dijalankan langsung.

Referensi

  • Untuk kode contoh lengkap yang digunakan untuk mendaftarkan objek, kunjungi list_objects_v2.py.