使用阿里雲oss SDK
依賴安裝:
- pip install oss2
-
pip install aliyun-python-sdk-sts
- 版本最好是 2.7.5 或以上
- 如果要開啟 crc64 循環冗余校驗,需要先將 crcmod 安裝好。
- 安裝 python-devel 執行 yum install python-devel。
- 需要循環冗余校驗,安裝 crcmod 執行 pip install crcmod。
獲取AccessKeyId和AccessKeySecret:
-
登錄阿里雲控制台。
-
將鼠標放在右上方的用戶名區域,在彈出的快捷菜單中選擇accesskeys。
-
系統彈出安全提示對話框,單擊繼續使用AccessKey。頁面顯示AccessKeyId和AccessKeySecret。
快速創建子賬號AccessKey:
- 使用主賬號登錄阿里雲控制台。
- 將鼠標置於頁面右上方的賬號圖標,然后單擊accesskeys。
- 在安全提示框中,單擊開始使用子用戶AccessKey。
- 填寫RAM用戶名,然后單擊下一步。
- 給RAM用戶授予相關權限,例如AliyunOSSFullAccess將給RAM用戶授予OSS的管理權限。單擊開始創建。
- 完成手機驗證后,單擊確定。
- 查看AccessKeyId和AccessKeySecret。然后單擊下載AccessKey,下載AccessKey信息。
整體使用方法:
# -*- coding: utf-8 -*-
import oss2
endpoint = 'http://oss-cn-hangzhou.aliyuncs.com' # Suppose that your bucket is in the Hangzhou region.
auth = oss2.Auth('<Your AccessKeyID>', '<Your AccessKeySecret>')
bucket = oss2.Bucket(auth, endpoint, '<your bucket name>')
# The object key in the bucket is story.txt
key = 'story.txt'
# Upload
bucket.put_object(key, 'Ali Baba is a happy youth.')
# Download
bucket.get_object(key).read()
# Delete
bucket.delete_object(key)
# Traverse all objects in the bucket
for object_info in oss2.ObjectIterator(bucket):
print(object_info.key)
創建存儲空間:
# -*- coding: utf-8 -*-
import oss2
# 阿里雲主賬號AccessKey擁有所有API的訪問權限,風險很高。強烈建議您創建並使用RAM賬號進行API訪問或日常運維,請登錄 https://ram.console.aliyun.com 創建RAM賬號。
auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>')
# Endpoint以杭州為例,其它Region請按實際情況填寫。
bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '<yourBucketName>')
# 設置存儲空間為私有讀寫權限。
bucket.create_bucket(oss2.models.BUCKET_ACL_PRIVATE)
上傳文件:
# -*- coding: utf-8 -*-
import oss2
# 阿里雲主賬號AccessKey擁有所有API的訪問權限,風險很高。強烈建議您創建並使用RAM賬號進行API訪問或日常運維,請登錄 https://ram.console.aliyun.com 創建RAM賬號。
auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>')
# Endpoint以杭州為例,其它Region請按實際情況填寫。
bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '<yourBucketName>')
# <yourLocalFile>由本地文件路徑加文件名包括后綴組成,例如/users/local/myfile.txt
bucket.put_object_from_file('<yourObjectName>', '<yourLocalFile>')
下載文件:
# -*- coding: utf-8 -*-
import oss2
# 阿里雲主賬號AccessKey擁有所有API的訪問權限,風險很高。強烈建議您創建並使用RAM賬號進行API訪問或日常運維,請登錄 https://ram.console.aliyun.com 創建RAM賬號。
auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>')
# Endpoint以杭州為例,其它Region請按實際情況填寫。
bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '<yourBucketName>')
# <yourLocalFile>由本地文件路徑加文件名包括后綴組成,例如/users/local/myfile.txt
bucket.get_object_to_file('<yourObjectName>', '<yourLocalFile>')
列舉文件:
# -*- coding: utf-8 -*-
import oss2
from itertools import islice
# 阿里雲主賬號AccessKey擁有所有API的訪問權限,風險很高。強烈建議您創建並使用RAM賬號進行API訪問或日常運維,請登錄 https://ram.console.aliyun.com 創建RAM賬號。
auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>')
# Endpoint以杭州為例,其它Region請按實際情況填寫。
bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '<yourBucketName>')
# oss2.ObjectIteratorr用於遍歷文件。
for b in islice(oss2.ObjectIterator(bucket), 10):
print(b.key)
刪除文件:
# -*- coding: utf-8 -*-
import oss2
# 阿里雲主賬號AccessKey擁有所有API的訪問權限,風險很高。強烈建議您創建並使用RAM賬號進行API訪問或日常運維,請登錄 https://ram.console.aliyun.com 創建RAM賬號。
auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>')
# Endpoint以杭州為例,其它Region請按實際情況填寫。
bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '<yourBucketName>')
bucket.delete_object('<yourObjectName>')
