Python列舉存儲空間
更新時間:
存儲空間(Bucket)是用來存儲對象(Object)的容器。對象都隸屬于存儲空間。存儲空間按照字母順序排列。您可以列舉當前賬號所有地域下符合指定條件的存儲空間。
注意事項
本文以華東1(杭州)外網(wǎng)Endpoint為例。如果您希望通過與OSS同地域的其他阿里云產(chǎn)品訪問OSS,請使用內(nèi)網(wǎng)Endpoint。關(guān)于OSS支持的Region與Endpoint的對應(yīng)關(guān)系,請參見OSS地域和訪問域名。
本文以從環(huán)境變量讀取訪問憑證為例。如何配置訪問憑證,請參見配置訪問憑證。
本文以OSS域名新建OSSClient為例。如果您希望通過自定義域名、STS等方式新建OSSClient,請參見初始化。
要列舉存儲空間,您必須具有
oss:ListBuckets
權(quán)限。具體操作,請參見為RAM用戶授權(quán)自定義的權(quán)限策略。
列舉所有存儲空間
以下代碼用于列舉當前賬號所有地域下的存儲空間。
說明
以下代碼不支持列舉指定地域的存儲空間。例如,您在代碼中填寫的Bucket所在地域為華東1(杭州),則依然會列舉您的阿里云賬號下所有地域的存儲空間。
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# 從環(huán)境變量中獲取訪問憑證。運行本代碼示例之前,請確保已設(shè)置環(huán)境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# 填寫B(tài)ucket所在地域?qū)?yīng)的Endpoint。以華東1(杭州)為例,Endpoint填寫為https://oss-cn-hangzhou.aliyuncs.com。
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# 填寫Endpoint對應(yīng)的Region信息,例如cn-hangzhou。注意,v4簽名下,必須填寫該參數(shù)
region = "cn-hangzhou"
service = oss2.Service(auth, endpoint, region=region)
# 列舉當前賬號所有地域下的存儲空間。
for b in oss2.BucketIterator(service):
print(b.name)
列舉指定前綴的存儲空間
以下代碼用于列舉當前賬號所有地域下以example為前綴(prefix)的存儲空間。
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# 從環(huán)境變量中獲取訪問憑證。運行本代碼示例之前,請確保已設(shè)置環(huán)境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# 填寫B(tài)ucket所在地域?qū)?yīng)的Endpoint。以華東1(杭州)為例,Endpoint填寫為https://oss-cn-hangzhou.aliyuncs.com。
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# 填寫Endpoint對應(yīng)的Region信息,例如cn-hangzhou。注意,v4簽名下,必須填寫該參數(shù)
region = "cn-hangzhou"
service = oss2.Service(auth, endpoint, region=region)
# 列舉當前賬號所有地域下前綴為example的存儲空間。
for b in oss2.BucketIterator(service, prefix='example'):
print(b.name)
列舉指定marker之后的存儲空間
以下代碼用于列舉當前賬號所有地域下名稱的字母序排在examplebucket之后的存儲空間。
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# 從環(huán)境變量中獲取訪問憑證。運行本代碼示例之前,請確保已設(shè)置環(huán)境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# 填寫B(tài)ucket所在地域?qū)?yīng)的Endpoint。以華東1(杭州)為例,Endpoint填寫為https://oss-cn-hangzhou.aliyuncs.com。
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# 填寫Endpoint對應(yīng)的Region信息,例如cn-hangzhou。注意,v4簽名下,必須填寫該參數(shù)
region = "cn-hangzhou"
service = oss2.Service(auth, endpoint, region=region)
# 列舉當前賬號所有地域下名稱的字母序排在examplebucket之后的存儲空間。列舉結(jié)果中不包含名為examplebucket的存儲空間。
for b in oss2.BucketIterator(service, marker='examplebucket'):
print(b.name)
相關(guān)文檔
關(guān)于列舉存儲空間的完整示例代碼,請參見GitHub示例。
關(guān)于列舉存儲空間的API接口說明,請參見ListBuckets(GetService)。
文檔內(nèi)容是否對您有幫助?