Anda dapat mengonfigurasi bilah kemajuan untuk menampilkan kemajuan tugas unggah atau unduhan.
Catatan penggunaan
Dalam topik ini, titik akhir publik Wilayah China (Hangzhou) digunakan. Jika ingin mengakses OSS dari layanan Alibaba Cloud lainnya di wilayah yang sama dengan OSS, gunakan titik akhir internal. Untuk informasi lebih lanjut tentang wilayah dan titik akhir OSS, lihat Wilayah dan Titik Akhir OSS.
Dalam topik ini, kredensial akses diperoleh dari variabel lingkungan. Untuk informasi lebih lanjut tentang cara mengonfigurasi kredensial akses, lihat Konfigurasi Kredensial Akses Menggunakan OSS SDK untuk Python 1.0.
Dalam topik ini, instans OSSClient dibuat menggunakan titik akhir OSS. Jika ingin membuat instans OSSClient menggunakan nama domain kustom atau Layanan Token Keamanan (STS), lihat Inisialisasi.
Contoh
Berikut adalah contoh kode yang menunjukkan cara menggunakan bilah kemajuan saat Anda menggunakan bucket.get_object_to_file untuk mengunduh objek:
# -*- coding: utf-8 -*-
from __future__ import print_function
import os
import sys
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, 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 ke https://oss-cn-hangzhou.aliyuncs.com.
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Tentukan ID wilayah yang sesuai dengan titik akhir. Contoh: cn-hangzhou. Parameter ini diperlukan jika Anda menggunakan algoritma tanda tangan V4.
region = "cn-hangzhou"
# Tentukan nama bucket Anda.
bucket = oss2.Bucket(auth, endpoint, "yourBucketName", region=region)
# Jika Content-Length tidak ada dalam header respons HTTP, nilai total_bytes adalah None.
# consumed_bytes menentukan ukuran data yang telah diunduh. Unit: byte.
# total_bytes menentukan ukuran total objek yang ingin Anda unduh. Unit: byte.
def percentage(consumed_bytes, total_bytes):
if total_bytes:
rate = int(100 * (float(consumed_bytes) / float(total_bytes)))
# rate menentukan kemajuan unduhan.
print('\r{0}% '.format(rate), end='')
sys.stdout.flush()
# progress_callback adalah parameter opsional yang digunakan untuk mengembalikan informasi kemajuan.
bucket.get_object_to_file('yourObjectName', 'yourLocalFile', progress_callback=percentage)Referensi
Untuk kode sampel lengkap mengenai konfigurasi bilah kemajuan untuk tugas unduhan objek, kunjungi GitHub.