すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:バケットの一覧表示 (OSS SDK for Python V2)

最終更新日:Nov 09, 2025

このトピックでは、現在のアカウント内のすべてのリージョンで、指定された条件を満たすバケットを一覧表示する方法について説明します。

注意事項

  • このトピックのサンプルコードでは、中国 (杭州) リージョン ID cn-hangzhou を使用します。デフォルトでは、パブリックエンドポイントが使用されます。同じリージョン内の他の Alibaba Cloud サービスから OSS にアクセスする場合は、内部エンドポイントを使用する必要があります。OSS のリージョンとエンドポイント間のマッピングの詳細については、「OSS のリージョンとエンドポイント」をご参照ください。

  • このトピックの例では、環境変数を使用してアクセス資格情報を読み取ります。アクセス資格情報を設定する方法の詳細については、「アクセス資格情報を設定する」をご参照ください。

  • バケットを一覧表示するには、oss:ListBuckets 権限が必要です。詳細については、「RAM ユーザーにカスタム権限を付与する」をご参照ください。

  • SDK を使用してバケットを一覧表示する場合、リソースグループ ID を指定して、特定のリソースグループ内のバケットをフィルターできます。

    • デフォルトでは、リソースグループ ID パラメーターはバケットを一覧表示するリクエストに含まれません。したがって、XML の結果にはリソースグループ情報は含まれません。

    • リクエストにリソースグループ ID パラメーターが含まれている場合、OSS はそのリソースグループに属するすべてのバケットを返します。

    • リクエストにリソースグループ ID パラメーターが含まれていない場合、OSS はリクエスターが所有するすべてのバケットを返します。

サンプルコード

次のコードを使用して、現在のアカウント内のすべてのリージョンにあるすべてのバケットを一覧表示できます。

import argparse
import alibabacloud_oss_v2 as oss

# コマンドライン引数パーサーを作成し、スクリプトの目的を記述します: このサンプルは、OSS のすべてのバケットを一覧表示する方法を示します。
parser = argparse.ArgumentParser(description="list buckets sample")

# バケットが配置されているリージョンを指定する --region コマンドライン引数を追加します。これは必須パラメーターです。
parser.add_argument('--region', help='The region in which the bucket is located.', required=True)
# 他のサービスが OSS へのアクセスに使用できるドメイン名を指定する --endpoint コマンドライン引数を追加します。これはオプションのパラメーターです。
parser.add_argument('--endpoint', help='The domain names that other services can use to access OSS')

def main():
    # コマンドラインで提供されたパラメーターを解析して、ユーザーが入力した値を取得します。
    args = parser.parse_args()

    # ID 検証のために、環境変数から OSS へのアクセスに必要な認証情報を読み込みます。
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

    # SDK のデフォルト設定を使用して設定オブジェクトを作成し、認証プロバイダーを設定します。
    cfg = oss.config.load_default()
    cfg.credentials_provider = credentials_provider
    cfg.region = args.region

    # カスタムエンドポイントが提供されている場合は、設定オブジェクトのエンドポイントプロパティを更新します。
    if args.endpoint is not None:
        cfg.endpoint = args.endpoint

    # 前述の設定を使用して OSS クライアントを初期化し、OSS との対話の準備をします。
    client = oss.Client(cfg)

    # 多数のバケットを処理するために、ListBuckets 操作用のページネーターを作成します。
    paginator = client.list_buckets_paginator()

    # ページ分割された結果を走査します。
    for page in paginator.iter_page(oss.ListBucketsRequest()):
        # 各ページの各バケットについて、その名前、場所、作成日を出力します。
        for o in page.buckets:
            print(f'Bucket: {o.name}, Location: {o.location}, Created: {o.creation_date}')

# このスクリプトが直接実行されるときに、main 関数を呼び出して処理ロジックを開始します。
if __name__ == "__main__":
    main()  # スクリプトのエントリポイントで、ここからプログラムフローが開始されます。

シナリオ

指定されたプレフィックスを持つバケットを一覧表示する

次のコードを使用して、現在のアカウント内のすべてのリージョンで、プレフィックスが「example」であるバケットを一覧表示できます。

import argparse
import alibabacloud_oss_v2 as oss

# コマンドライン引数パーサーを作成し、スクリプトの目的を記述します: このサンプルは、OSS のすべてのバケットを一覧表示する方法を示します。
parser = argparse.ArgumentParser(description="list buckets sample")

# バケットが配置されているリージョンを指定する --region コマンドライン引数を追加します。これは必須パラメーターです。
parser.add_argument('--region', help='The region in which the bucket is located.', required=True)
# 他のサービスが OSS へのアクセスに使用できるドメイン名を指定する --endpoint コマンドライン引数を追加します。これはオプションのパラメーターです。
parser.add_argument('--endpoint', help='The domain names that other services can use to access OSS')

def main():
    # コマンドラインで提供されたパラメーターを解析して、ユーザーが入力した値を取得します。
    args = parser.parse_args()

    # ID 検証のために、環境変数から OSS へのアクセスに必要な認証情報を読み込みます。
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

    # SDK のデフォルト設定を使用して設定オブジェクトを作成し、認証プロバイダーを設定します。
    cfg = oss.config.load_default()
    cfg.credentials_provider = credentials_provider
    cfg.region = args.region

    # カスタムエンドポイントが提供されている場合は、設定オブジェクトのエンドポイントプロパティを更新します。
    if args.endpoint is not None:
        cfg.endpoint = args.endpoint

    # 前述の設定を使用して OSS クライアントを初期化し、OSS との対話の準備をします。
    client = oss.Client(cfg)

    # 多数のバケットを処理するために、ListBuckets 操作用のページネーターを作成します。
    paginator = client.list_buckets_paginator()

    # ページ分割された結果を走査します。
    for page in paginator.iter_page(oss.ListBucketsRequest(
        prefix='example', # プレフィックスを指定して、名前が "example" で始まるバケットのみを一覧表示します。
        ),
    ):
        # 各ページの各バケットについて、その名前、場所、作成日を出力します。
        for o in page.buckets:
            print(f'Bucket: {o.name}, Location: {o.location}, Created: {o.creation_date}')

# このスクリプトが直接実行されるときに、main 関数を呼び出して処理ロジックを開始します。
if __name__ == "__main__":
    main()  # スクリプトのエントリポイントで、ここからプログラムフローが開始されます。

指定されたマーカー以降のバケットを一覧表示する

次のコードを使用して、現在のアカウント内のすべてのリージョンで、名前がアルファベット順で「example-bucket」より後にあるバケットを一覧表示できます。

import argparse
import alibabacloud_oss_v2 as oss

# コマンドライン引数パーサーを作成し、スクリプトの目的を記述します: このサンプルは、OSS のすべてのバケットを一覧表示する方法を示します。
parser = argparse.ArgumentParser(description="list buckets sample")

# バケットが配置されているリージョンを指定する --region コマンドライン引数を追加します。これは必須パラメーターです。
parser.add_argument('--region', help='The region in which the bucket is located.', required=True)
# 他のサービスが OSS へのアクセスに使用できるドメイン名を指定する --endpoint コマンドライン引数を追加します。これはオプションのパラメーターです。
parser.add_argument('--endpoint', help='The domain names that other services can use to access OSS')

def main():
    # コマンドラインで提供されたパラメーターを解析して、ユーザーが入力した値を取得します。
    args = parser.parse_args()

    # ID 検証のために、環境変数から OSS へのアクセスに必要な認証情報を読み込みます。
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

    # SDK のデフォルト設定を使用して設定オブジェクトを作成し、認証プロバイダーを設定します。
    cfg = oss.config.load_default()
    cfg.credentials_provider = credentials_provider
    cfg.region = args.region

    # カスタムエンドポイントが提供されている場合は、設定オブジェクトのエンドポイントプロパティを更新します。
    if args.endpoint is not None:
        cfg.endpoint = args.endpoint

    # 前述の設定を使用して OSS クライアントを初期化し、OSS との対話の準備をします。
    client = oss.Client(cfg)

    # 多数のバケットを処理するために、ListBuckets 操作用のページネーターを作成します。
    paginator = client.list_buckets_paginator()

    # ページ分割された結果を走査します。
    for page in paginator.iter_page(oss.ListBucketsRequest(
        marker="example-bucket", # 名前がアルファベット順で "example-bucket" より後にあるバケットを一覧表示します。
        ),
    ):
        # 各ページの各バケットについて、その名前、場所、作成日を出力します。
        for o in page.buckets:
            print(f'Bucket: {o.name}, Location: {o.location}, Created: {o.creation_date}')

# このスクリプトが直接実行されるときに、main 関数を呼び出して処理ロジックを開始します。
if __name__ == "__main__":
    main()  # スクリプトのエントリポイントで、ここからプログラムフローが開始されます。

指定された数のバケットを一覧表示する

次のコードを使用して、現在のアカウント内のすべてのリージョンにあるバケットを一覧表示し、各ページで返されるバケットの最大数を指定できます。

import argparse
import alibabacloud_oss_v2 as oss

# コマンドライン引数パーサーを作成し、スクリプトの目的を記述します: このサンプルは、OSS のすべてのバケットを一覧表示する方法を示します。
parser = argparse.ArgumentParser(description="list buckets sample")

# バケットが配置されているリージョンを指定する --region コマンドライン引数を追加します。これは必須パラメーターです。
parser.add_argument('--region', help='The region in which the bucket is located.', required=True)
# 他のサービスが OSS へのアクセスに使用できるドメイン名を指定する --endpoint コマンドライン引数を追加します。これはオプションのパラメーターです。
parser.add_argument('--endpoint', help='The domain names that other services can use to access OSS')

def main():
    # コマンドラインで提供されたパラメーターを解析して、ユーザーが入力した値を取得します。
    args = parser.parse_args()

    # ID 検証のために、環境変数から OSS へのアクセスに必要な認証情報を読み込みます。
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

    # SDK のデフォルト設定を使用して設定オブジェクトを作成し、認証プロバイダーを設定します。
    cfg = oss.config.load_default()
    cfg.credentials_provider = credentials_provider
    cfg.region = args.region

    # カスタムエンドポイントが提供されている場合は、設定オブジェクトのエンドポイントプロパティを更新します。
    if args.endpoint is not None:
        cfg.endpoint = args.endpoint

    # 前述の設定を使用して OSS クライアントを初期化し、OSS との対話の準備をします。
    client = oss.Client(cfg)

    # 多数のバケットを処理するために、ListBuckets 操作用のページネーターを作成します。
    paginator = client.list_buckets_paginator()

    # ページ分割された結果を走査します。各ページには特定の数のバケットが含まれます。
    for page in paginator.iter_page(oss.ListBucketsRequest(
        max_keys=10, # ページごとに最大 10 個のバケットを返します。
        ),
    ):
        # 各ページの各バケットについて、その名前、場所、作成日を出力します。
        for o in page.buckets:
            print(f'Bucket: {o.name}, Location: {o.location}, Created: {o.creation_date}')

# このスクリプトが直接実行されるときに、main 関数を呼び出して処理ロジックを開始します。
if __name__ == "__main__":
    main()  # スクリプトのエントリポイントで、ここからプログラムフローが開始されます。

指定されたリソースグループ内のすべてのバケットを一覧表示する

  1. デフォルトでは、リソースグループ ID パラメーターはリクエストに含まれず、XML の結果にはリソースグループ情報が含まれません。

  2. リクエストで resource_group_id パラメーターを指定すると、OSS は指定されたリソースグループに属するすべてのバケットを返します。

  3. リクエストで resource_group_id パラメーターを指定しない場合、OSS はリクエスターが所有するすべてのバケットを返します。

import argparse
import alibabacloud_oss_v2 as oss

# コマンドライン引数パーサーを作成し、スクリプトの目的を記述します: このサンプルは、OSS のすべてのバケットを一覧表示する方法を示します。
parser = argparse.ArgumentParser(description="list buckets sample")

# バケットが配置されているリージョンを指定する --region コマンドライン引数を追加します。これは必須パラメーターです。
parser.add_argument('--region', help='The region in which the bucket is located.', required=True)
# 他のサービスが OSS へのアクセスに使用できるドメイン名を指定する --endpoint コマンドライン引数を追加します。これはオプションのパラメーターです。
parser.add_argument('--endpoint', help='The domain names that other services can use to access OSS')

def main():
    # コマンドラインで提供されたパラメーターを解析して、ユーザーが入力した値を取得します。
    args = parser.parse_args()

    # ID 検証のために、環境変数から OSS へのアクセスに必要な認証情報を読み込みます。
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

    # SDK のデフォルト設定を使用して設定オブジェクトを作成し、認証プロバイダーを設定します。
    cfg = oss.config.load_default()
    cfg.credentials_provider = credentials_provider
    cfg.region = args.region

    # カスタムエンドポイントが提供されている場合は、設定オブジェクトのエンドポイントプロパティを更新します。
    if args.endpoint is not None:
        cfg.endpoint = args.endpoint

    # 前述の設定を使用して OSS クライアントを初期化し、OSS との対話の準備をします。
    client = oss.Client(cfg)

    # 多数のバケットを処理するために、ListBuckets 操作用のページネーターを作成します。
    paginator = client.list_buckets_paginator()

    # ページ分割された結果を走査します。各ページには特定の数のバケットが含まれます。
    for page in paginator.iter_page(oss.ListBucketsRequest(
        max_keys=10, # ページごとに最大 10 個のバケットを返します。
        resource_group_id="rg-aek27tc********", # 指定されたリソースグループ内のバケットを一覧表示します。
        ),
    ):
        # 各ページの各バケットについて、その名前、場所、作成日、およびリソースグループ ID を出力します。
        for o in page.buckets:
            print(f'Bucket: {o.name}, Location: {o.location}, Created: {o.creation_date}, Resource Group ID: {o.resource_group_id}')

# このスクリプトが直接実行されるときに、main 関数を呼び出して処理ロジックを開始します。
if __name__ == "__main__":
    main()  # スクリプトのエントリポイントで、ここからプログラムフローが開始されます。

関連情報

  • バケットを一覧表示するための完全なサンプルコードについては、「list_buckets.py」をご参照ください。