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

Object Storage Service:バケットの一覧表示

最終更新日:Mar 13, 2025

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

使用上の注意

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

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

次のサンプルコードは、現在の Alibaba Cloud アカウント内のすべてのリージョンにあるバケットを一覧表示する方法の例を示しています。

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)
# コマンドラインパラメータ --endpoint を指定します。これは、他のサービスが OSS にアクセスするために使用できるエンドポイントを指定します。このパラメータはオプションです。
parser.add_argument('--endpoint', help='The domain names that other services can use to access OSS')

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

    # 環境変数から OSS にアクセスするために必要な認証情報をロードします。
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

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

    # カスタムエンドポイントが提供されている場合は、構成オブジェクトの endpoint パラメータを変更します。
    if args.endpoint is not None:
        cfg.endpoint = args.endpoint

    # 前述の構成を使用して OSSClient インスタンスを初期化し、インスタンスが OSS と対話できるようにします。
    client = oss.Client(cfg)

    # ListBuckets 操作で多数のバケットを一覧表示できるようにするために、ページネータを作成します。
    paginator = client.list_buckets_paginator()

    # 一覧表示されたバケットをトラバースします。
    for page in paginator.iter_page(oss.ListBucketsRequest()):
        # 各ページの各バケットの名前、場所、作成日、およびリソースグループ 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() # スクリプトの関数のエントリポイントを指定します。制御プログラムフローはここから開始されます。

一般的なシナリオ

名前に特定のプレフィックスが含まれるバケットを一覧表示する

次のサンプルコードは、現在の Alibaba Cloud アカウント内のすべてのリージョンで、名前に example プレフィックスが含まれるバケットを一覧表示する方法の例を示しています。

import argparse
import alibabacloud_oss_v2 as oss

# コマンドラインパラメータパーサーを作成し、スクリプトの目的を記述します。この例では、OSS 内のすべてのバケットを一覧表示する方法について説明します。
parser = argparse.ArgumentParser(description="list buckets sample")

# コマンドラインパラメータ --region を指定します。これは、バケットが配置されているリージョンを指定します。このパラメータは必須です。
parser.add_argument('--region', help='バケットが配置されているリージョン。', required=True)
# コマンドラインパラメータ --endpoint を指定します。これは、他のサービスが OSS にアクセスするために使用できるエンドポイントを指定します。このパラメータはオプションです。
parser.add_argument('--endpoint', help='他のサービスが OSS にアクセスするために使用できるドメイン名')

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

    # 環境変数から OSS にアクセスするために必要な認証情報をロードします。
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

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

    # カスタムエンドポイントが提供されている場合は、構成オブジェクトの endpoint パラメータを変更します。
    if args.endpoint is not None:
        cfg.endpoint = args.endpoint

    # 前述の構成を使用して OSSClient インスタンスを初期化し、インスタンスが OSS と対話できるようにします。
    client = oss.Client(cfg)

    # ListBuckets 操作で多数のバケットを一覧表示できるようにするために、ページネータを作成します。
    paginator = client.list_buckets_paginator()

    # 一覧表示されたバケットをトラバースします。
    for page in paginator.iter_page(oss.ListBucketsRequest(
        prefix='example', # prefix パラメータを example に設定します。このようにして、名前に example プレフィックスが含まれるバケットのみが一覧表示されます。
        ),
    ):
        # 各ページの各バケットの名前、場所、作成日、およびリソースグループ 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() # スクリプトの関数のエントリポイントを指定します。制御プログラムフローはここから開始されます。

marker パラメータで指定されたバケットの後にある名前のバケットを一覧表示する

次のサンプルコードは、現在の Alibaba Cloud アカウント内のすべてのリージョンで、example-bucket バケットの後にある名前のバケットを一覧表示する方法の例を示しています。

import argparse
import alibabacloud_oss_v2 as oss

# コマンドラインパラメータパーサーを作成し、スクリプトの目的を記述します。この例では、OSS 内のすべてのバケットを一覧表示する方法について説明します。
parser = argparse.ArgumentParser(description="list buckets sample")

# コマンドラインパラメータ --region を指定します。これは、バケットが配置されているリージョンを指定します。このパラメータは必須です。
parser.add_argument('--region', help='バケットが配置されているリージョン。', required=True)
# コマンドラインパラメータ --endpoint を指定します。これは、他のサービスが OSS にアクセスするために使用できるエンドポイントを指定します。このパラメータはオプションです。
parser.add_argument('--endpoint', help='他のサービスが OSS にアクセスするために使用できるドメイン名')

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

    # 環境変数から OSS にアクセスするために必要な認証情報をロードします。
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

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

    # カスタムエンドポイントが提供されている場合は、構成オブジェクトの endpoint パラメータを変更します。
    if args.endpoint is not None:
        cfg.endpoint = args.endpoint

    # 前述の構成を使用して OSSClient インスタンスを初期化し、インスタンスが OSS と対話できるようにします。
    client = oss.Client(cfg)

    # ListBuckets 操作で多数のバケットを一覧表示できるようにするために、ページネータを作成します。
    paginator = client.list_buckets_paginator()

    # 一覧表示されたバケットをトラバースします。
    for page in paginator.iter_page(oss.ListBucketsRequest(
        marker="example-bucket", # marker パラメータを example-bucket に設定します。このようにして、example-bucket バケットの後にある名前のバケットが一覧表示されます。
        ),
    ):
        # 各ページの各バケットの名前、場所、作成日、およびリソースグループ 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() # スクリプトの関数のエントリポイントを指定します。制御プログラムフローはここから開始されます。

特定のバケット数を一覧表示する

次のサンプルコードは、現在の Alibaba Cloud アカウント内のすべてのリージョンのバケットを一覧表示し、ページごとに一覧表示できるバケットの最大数を指定する方法の例を示しています。

import argparse
import alibabacloud_oss_v2 as oss

# コマンドラインパラメータパーサーを作成し、スクリプトの目的を記述します。この例では、OSS 内のすべてのバケットを一覧表示する方法について説明します。
parser = argparse.ArgumentParser(description="list buckets sample")

# コマンドラインパラメータ --region を指定します。これは、バケットが配置されているリージョンを指定します。このパラメータは必須です。
parser.add_argument('--region', help='バケットが配置されているリージョン。', required=True)
# コマンドラインパラメータ --endpoint を指定します。これは、他のサービスが OSS にアクセスするために使用できるエンドポイントを指定します。このパラメータはオプションです。
parser.add_argument('--endpoint', help='他のサービスが OSS にアクセスするために使用できるドメイン名')

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

    # 環境変数から OSS にアクセスするために必要な認証情報をロードします。
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

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

    # カスタムエンドポイントが提供されている場合は、構成オブジェクトの endpoint パラメータを変更します。
    if args.endpoint is not None:
        cfg.endpoint = args.endpoint

    # 前述の構成を使用して OSSClient インスタンスを初期化し、インスタンスが OSS と対話できるようにします。
    client = oss.Client(cfg)

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

    # 一覧表示されたバケットをトラバースします。各ページには特定のバケット数が含まれています。
    for page in paginator.iter_page(oss.ListBucketsRequest(
        max_keys=10, # ページごとに最大 10 個のバケットを返すように指定します。
        ),
    ):
        # 各ページの各バケットの名前、場所、作成日、およびリソースグループ 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 にアクセスしてください。