python使用阿里云oss-sdk

时间:2019-10-08
本文章向大家介绍python使用阿里云oss-sdk,主要包括python使用阿里云oss-sdk使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

python使用阿里云oss-python-sdk

  • 请访问github获取源码

    安装

    pip install oss2

安装验证

>>> import oss2
>>> oss2.__version__
''2.8.0''
上面的输出表明您已经成功安装了Python SDK 2.8.0。

创建存储空间

import oss2
auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>')

bucket = oss2.Bucket(auth, '<your Endpoint >', '<yourBucketName>')
bucket.create_bucket(oss2.models.BUCKET_ACL_PRIVATE) # 设置为存储空间为私有读写权限

访问权限设置

  • 私有:BUCKET_ACL_PRIVATE
  • 公共读:BUCKET_ACL_PUBLIC_READ
  • 公共读写 :BUCKET_ACL_PUBLIC_READ_WRITE

简单上传文件

  • 上传本地文件
import oss2

# 登录 https://ram.console.aliyun.com 创建RAM账号。
auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>')
bucket = oss2.Bucket(auth, '<your Endpoint >', '<yourBucketName>')

# 必须以二进制的方式打开文件,因为需要知道文件包含的字节数。
with open('<yourLocalFile>', 'rb') as fileobj:
    # Seek方法用于指定从第1000个字节位置开始读写。上传时会从您指定的第1000个字节位置开始上传,直到文件结束。
    fileobj.seek(1000, os.SEEK_SET)
    # Tell方法用于返回当前位置。
    current = fileobj.tell()
    bucket.put_object('<yourObjectName>', fileobj)
  • 网络流上传
# -*- coding: utf-8 -*-
import oss2
import requests


auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>')
bucket = oss2.Bucket(auth, '<your Endpoint >', '<yourBucketName>')

# requests.get返回的是一个可迭代对象(Iterable),此时Python SDK会通过Chunked Encoding方式上传。
input = requests.get('http://www.aliyun.com')
bucket.put_object('<yourObjectName>', input)

put_object返回对象的resp.response.url为该文件的访问地址

原文地址:https://www.cnblogs.com/ivy-blogs/p/11635693.html