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為該文件的訪問地址