0
点赞
收藏
分享

微信扫一扫

对象存储oss

以前干嘛去了 2022-03-22 阅读 66
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)
举报

相关推荐

0 条评论