Python下載進度條
進度條用于指示上傳或下載的進度。
注意事項
本文以華東1(杭州)外網(wǎng)Endpoint為例。如果您希望通過與OSS同地域的其他阿里云產(chǎn)品訪問OSS,請使用內(nèi)網(wǎng)Endpoint。關(guān)于OSS支持的Region與Endpoint的對應(yīng)關(guān)系,請參見訪問域名和數(shù)據(jù)中心。
本文以從環(huán)境變量讀取訪問憑證為例。如何配置訪問憑證,請參見配置訪問憑證。
本文以O(shè)SS域名新建OSSClient為例。如果您希望通過自定義域名、STS等方式新建OSSClient,請參見初始化。
示例代碼
下面的代碼以bucket.get_object_to_file方法為例,介紹如何使用進度條。
# -*- coding: utf-8 -*-
from __future__ import print_function
import os, sys
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# 從環(huán)境變量中獲取訪問憑證。運行本代碼示例之前,請確保已設(shè)置環(huán)境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# 填寫B(tài)ucket所在地域?qū)?yīng)的Endpoint。以華東1(杭州)為例,Endpoint填寫為https://oss-cn-hangzhou.aliyuncs.com。
# yourBucketName填寫存儲空間名稱。
bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'yourBucketName')
# 當(dāng)HTTP響應(yīng)頭部沒有Content-Length時,total_bytes的值為None。
# consumed_bytes表示已下載文件的大小,單位為字節(jié)。
# total_bytes表示下載文件的總大小,單位為字節(jié)。
def percentage(consumed_bytes, total_bytes):
if total_bytes:
rate = int(100 * (float(consumed_bytes) / float(total_bytes)))
# rate表示下載進度。
print('\r{0}% '.format(rate), end='')
sys.stdout.flush()
# progress_callback是可選參數(shù),用于實現(xiàn)進度條功能。
bucket.get_object_to_file('yourObjectName', 'yourLocalFile', progress_callback=percentage)
相關(guān)文檔
關(guān)于下載文件的進度條使用方法的完整示例代碼,請參見GitHub示例。
文檔內(nèi)容是否對您有幫助?