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

Object Storage Service:エンドポイント情報のクエリ (OSS SDK for Python V2)

最終更新日:Nov 09, 2025

このトピックでは、Python SDK V2 を使用して、サポートされているすべてのリージョンまたは特定のリージョンのエンドポイントをクエリする方法について説明します。これには、インターネットアクセス (IPv4) エンドポイント、内部アクセス (クラシックネットワークまたは VPC ネットワーク) エンドポイント、およびアクセラレーションエンドポイント (グローバルアップロードおよびダウンロードアクセラレーション) が含まれます。

注意事項

  • バケットを作成していないリージョンであっても、サポートされているすべてのリージョンまたは特定のリージョンのエンドポイントをクエリできます。

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

サポートされているすべてのリージョンのエンドポイントのクエリ

以下に、サポートされているすべてのリージョンのエンドポイントをクエリする方法の例を示します。

import argparse
import alibabacloud_oss_v2 as oss

# コマンドライン引数パーサーを作成し、スクリプトの目的を記述します: このサンプルは、OSS でサポートされているリージョン情報をクエリする方法を示します
parser = argparse.ArgumentParser(description="describe regions sample")

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

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)

    # リージョン情報を取得するためのリクエストを送信します
    result = client.describe_regions(oss.DescribeRegionsRequest(
        regions=args.regions,
    ))

    # リクエストのステータスコードとリクエスト ID を出力します
    print(f'status code: {result.status_code},'
          f' request id: {result.request_id}'
    )

    # 各リージョンの詳細を走査して出力します
    for rg in result.region_info:
        print(f'region: {rg.region},'
              f' internet endpoint: {rg.internet_endpoint},'
              f' internal endpoint: {rg.internal_endpoint},'
              f' accelerate endpoint: {rg.accelerate_endpoint}'
        )

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

特定リージョンのエンドポイントのクエリ

以下のサンプルコードは、特定リージョンのエンドポイントをクエリする方法を示しています。

import argparse
import alibabacloud_oss_v2 as oss

# コマンドライン引数パーサーを作成し、スクリプトの目的を記述します: このサンプルは、OSS でサポートされているリージョン情報をクエリする方法を示します
parser = argparse.ArgumentParser(description="describe regions sample")

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

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)

    # リージョン情報を取得するためのリクエストを送信します
    result = client.describe_regions(oss.DescribeRegionsRequest(
        regions=args.regions, # 中国 (杭州) の例として oss-cn-hangzhou を使用します。他のリージョンについては、実際のリージョンを指定してください。
    ))

    # リクエストのステータスコードとリクエスト ID を出力します
    print(f'status code: {result.status_code},'
          f' request id: {result.request_id}'
    )

    # 各リージョンの詳細を走査して出力します
    for rg in result.region_info:
        print(f'region: {rg.region},'
              f' internet endpoint: {rg.internet_endpoint},'
              f' internal endpoint: {rg.internal_endpoint},'
              f' accelerate endpoint: {rg.accelerate_endpoint}'
        )

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

参考資料

  • リージョンのエンドポイント情報をクエリするための API インターフェイスの説明については、「DescribeRegions」をご参照ください。