pip3 install oss2
如果安装失败
sudo python3 -m pip install --upgrade pip
上传文件
import oss2
auth = oss2.Auth('yourAccessKeyId', 'yourAccessKeySecret')
bucket = oss2.Bucket(auth, Endpoint, Bucket)
oss2.resumable_upload(bucket, yourObjectName, yourLocalFile)
Endpoint(地域节点)和Bucket( 域名)
这2个参数决定了:您上传文件的最终访问地址。
例如我的Endpoint=‘https://oss-cn-shenzhen.aliyuncs.com’,Bucket=‘mb’
这个地址就是:‘https://mb.oss-cn-shenzhen.aliyuncs.com’;
bucket实际上就是你的oss项目在阿里云上的名字,范围是全体阿里云用户的oss,所以大家的bucket名字是存在着竞争关系的。
endpoint就是你申请好的oss项目的物理服务器。选择了不同的区域,就会有不同的endpoint
yourObjectName,云服务器完整路径,不包含Bucket和Endpoint
yourLocalFile,本地文件的完整路径
上传文件支持断点续传
import sys
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()
import oss2
auth = oss2.Auth('yourAccessKeyId', 'yourAccessKeySecret')
bucket = oss2.Bucket(auth, Endpoint, Bucket)
oss2.resumable_upload(bucket, yourObjectName, yourLocalFile,
store=oss2.ResumableStore(root='/tmp'),
# 指定当文件长度大于或等于可选参数multipart_threshold(默认值为10 MB)时,则使用分片上传。
multipart_threshold=100 * 1024,
# 设置分片大小,单位为字节,取值范围为100 KB~5 GB。默认值为100 KB。
part_size=100 * 1024,
# 设置上传回调进度函数。
progress_callback=percentage,
# 如果使用num_threads设置并发上传线程数,请将oss2.defaults.connection_pool_size设置为大于或等于并发上传线程数。默认并发上传线程数为1。
num_threads=4)
下载文件和上传文件类似,只是函数不同resumable_download和resumable_upload
import sys
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()
import oss2
auth = oss2.Auth('yourAccessKeyId', 'yourAccessKeySecret')
bucket = oss2.Bucket(auth, Endpoint, Bucket)
oss2.resumable_download(bucket, yourObjectName, yourLocalFile,
store=oss2.ResumableStore(root='/tmp'),
# 指定当文件长度大于或等于可选参数multipart_threshold(默认值为10 MB)时,则使用分片上传。
multipart_threshold=100 * 1024,
# 设置分片大小,单位为字节,取值范围为100 KB~5 GB。默认值为100 KB。
part_size=100 * 1024,
# 设置上传回调进度函数。
progress_callback=percentage,
# 如果使用num_threads设置并发上传线程数,请将oss2.defaults.connection_pool_size设置为大于或等于并发上传线程数。默认并发上传线程数为1。
num_threads=4)