+ 我要发布
我发布的 我的标签 发现
浏览器扩展
斑点象@Edge

阿里云对象存储 OSS Python 进度条

进度条用于指示上传或下载的进度。 注意事项 + 本文以华东1(杭州)外网Endpoint为例。如果您希望通过与OSS同地域的其他阿里云产品访问OSS,请使用内网Endpoint。关于OSS支持的Region与Endpoint的对应关系,请参见访问域名和数据中心。 + 本文以从环境变量读取访问凭证为例。如何配置访问凭证,请参见Python配置访问凭证。 + 本文以OSS域名新建OSSClient为例。如果您希望通过自定义域名、STS等方式新建OSSClient,请参见Python初始化。 示例代码 下面的代码以bucket.put_object方法为例,介绍如何使用进度条。 ``` #-*- coding: utf-8 -*- from __future__ import print_function import os, sys import oss2 from oss2.credentials import EnvironmentVariableCredentialsProvider #从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。 auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider()) #填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。 #yourBucketName填写存储空间名称。 bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'yourBucketName') #consumed_bytes表示已上传的数据量。 #total_bytes表示待上传的总数据量。当无法确定待上传的数据长度时,total_bytes的值为None。 def percentage(consumed_bytes, total_bytes): if total_bytes: rate = int(100 * (float(consumed_bytes) / float(total_bytes))) print('\r{0}% '.format(rate), end='') sys.stdout.flush() #progress_callback为可选参数,用于实现进度条功能。 bucket.put_object('yourObjectName', 'a'*1024*1024, progress_callback=percentage) ```
我的笔记