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
时间: 2024-10-05 16:58:28