上傳本地文件
# -*- 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>') # 必須以二進制的方式打開文件,因為需要知道文件包含的字節數。 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 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>') for b in islice(oss2.ObjectIterator(bucket), 10): print(b.key)
如何獲取OSS文件的訪問地址?
OSS的Object地址由域名、bucketName、object組成,具體格式為:bucketName.endpoint/object。
例如:杭州地域的bucket:aaa,其中有一個key為123.txt的Object,如果要通過外網訪問,拼接后的鏈接地址為: aaa.oss-cn-hangzhou.aliyuncs.com/123.txt。其中各個地域的Bucket對應的endpoint,如果Bucket的ACL權限為私有的情況下則需要在上述基礎上至少還要包含Signature,Expires,OSSAccessKeyId三個參數。
如果Bucket綁定了自定義域名例如abc.example.com,客戶希望通過自定義域名來訪問,只需要將“aaa.oss-cn-hangzhou.aliyuncs.com”更改為abc.example.com即可。具體的自定義域名可以在下圖中的域名管理頁面中查看。