存储空间(Bucket)是存储对象(Object)的容器。对象都隶属于存储空间。本文介绍如何列举所有的存储空间、列举指定前缀(prefix)的存储空间等。

列举所有的存储空间

以下代码用于列举所有的存储空间:

# -*- coding: utf-8 -*-
import oss2

# 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。
auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>')
# Endpoint以杭州为例,其它Region请按实际情况填写。
service = oss2.Service(auth, 'http://oss-cn-hangzhou.aliyuncs.com')

# 列举所有的存储空间。
for b in oss2.BucketIterator(service):
    print(b.name)

列举存储空间的更多详情,请参见GetService (ListBuckets)

列举指定前缀的存储空间

以下代码用于列举指定前缀(prefix)的存储空间:

# -*- coding: utf-8 -*-
import oss2

# 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。
auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>')
# Endpoint以杭州为例,其它Region请按实际情况填写。
service = oss2.Service(auth, 'http://oss-cn-hangzhou.aliyuncs.com')

# 列举前缀为test-的存储空间。
for b in oss2.BucketIterator(service, prefix='test-'):
    print(b.name)

列举指定marker之后的存储空间

参数marker代表存储空间名称。以下代码用于列举指定marker之后的存储空间:

# -*- coding: utf-8 -*-
import oss2

# 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。
auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>')
# Endpoint以杭州为例,其它Region请按实际情况填写。
service = oss2.Service(auth, 'http://oss-cn-hangzhou.aliyuncs.com')

# 列举按字典序排列在test-bucket1之后的存储空间。列举结果中不包含名为test-bucket1的存储空间。
for b in oss2.BucketIterator(service, marker='test-bucket1'):
    print(b.name)