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

Object Storage Service:Python 2.0 向け OSS SDK を使用してアクセスポイントのパブリックアクセスブロックを管理する

最終更新日:Aug 26, 2025

このトピックでは、Object Storage Service (OSS) SDK for Python 2.0 を使用してアクセスポイントのパブリックアクセスブロックを管理する方法について説明します。

使用上の注意

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

アクセスポイントのパブリックアクセスブロックを有効にする

次のサンプルコードは、アクセスポイントのパブリックアクセスブロックを有効にする方法の例を示しています。

import argparse
import alibabacloud_oss_v2 as oss

# コマンドラインパラメータパーサーを作成し、スクリプトの目的を記述します。この例では、アクセスポイントのパブリックアクセスブロックを有効にする方法について説明します。
parser = argparse.ArgumentParser(description="put access point public access block sample")

# コマンドラインパラメータ(リージョン、バケット名、アクセスポイント名、エンドポイントなど)を指定し、パブリックアクセスブロックを有効にするかどうかを指定します。エンドポイントパラメータはオプションです。
parser.add_argument('--region', help='バケットが配置されているリージョン。', required=True)
parser.add_argument('--bucket', help='バケットの名前。', required=True)
parser.add_argument('--endpoint', help='他のサービスが OSS にアクセスするために使用できるドメイン名')
parser.add_argument('--access_point_name', help='アクセスポイントの名前。', required=True)
parser.add_argument('--block_public_access',
                    help='パブリックアクセスブロックを有効にするかどうかを指定します。 '
                         'true: パブリックアクセスブロックを有効にします。 '
                         'false (デフォルト): パブリックアクセスブロックを無効にします。',
                    default='false')

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

    # 認証のために環境変数からアクセス認証情報を取得します。
    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

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

    # アクセスポイントのパブリックアクセスブロックを指定するリクエストを送信します。
    result = client.put_access_point_public_access_block(oss.PutAccessPointPublicAccessBlockRequest(
            bucket=args.bucket, # バケットの名前。
            access_point_name=args.access_point_name, # アクセスポイントの名前。
            public_access_block_configuration=oss.PublicAccessBlockConfiguration(
                block_public_access=args.block_public_access == 'true', # パブリックアクセスブロックを有効にします。
            ),
    ))

    # リクエストの HTTP ステータスコードとリクエスト ID を表示して、リクエストステータスを確認します。
    print(f'status code: {result.status_code},'
          f' request id: {result.request_id},'
          )

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

アクセスポイントのパブリックアクセスブロック構成を照会する

次のサンプルコードは、アクセスポイントのパブリックアクセスブロック構成を照会する方法の例を示しています。

import argparse
import alibabacloud_oss_v2 as oss

# コマンドラインパラメータパーサーを作成し、スクリプトの目的を記述します。この例では、アクセスポイントのパブリックアクセスブロック構成を照会する方法について説明します。
parser = argparse.ArgumentParser(description="get access point public access block sample")

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

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

    # 認証のために環境変数からアクセス認証情報を取得します。
    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

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

    # アクセスポイントのパブリックアクセスブロック構成を照会するリクエストを送信します。
    result = client.get_access_point_public_access_block(oss.GetAccessPointPublicAccessBlockRequest(
            bucket=args.bucket, # バケットの名前。
            access_point_name=args.access_point_name, # アクセスポイントの名前。
    ))

    # リクエストの HTTP ステータスコード、リクエスト ID、およびパブリックアクセスブロックのステータスを表示して、リクエストステータスとパブリックアクセスブロック構成を確認します。
    print(f'status code: {result.status_code},'
          f' request id: {result.request_id},'
          f' block public access: {getattr(result.public_access_block_configuration, "block_public_access", "Not set")},'
          )


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

アクセスポイントのパブリックアクセスブロック設定を削除する

次のサンプルコードは、アクセスポイントのパブリックアクセスブロック構成を削除する方法の例を示しています。

import argparse
import alibabacloud_oss_v2 as oss

# コマンドラインパラメータパーサーを作成し、スクリプトの目的を記述します。この例では、アクセスポイントのパブリックアクセスブロック構成を照会する方法について説明します。
parser = argparse.ArgumentParser(description="delete access point public access block sample")

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

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

    # 認証のために環境変数からアクセス認証情報を取得します。
    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

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

    # アクセスポイントのパブリックアクセスブロック構成を削除するリクエストを送信します。
    result = client.delete_access_point_public_access_block(oss.DeleteAccessPointPublicAccessBlockRequest(
            bucket=args.bucket, # バケットの名前。
            access_point_name=args.access_point_name, # アクセスポイントの名前。
    ))

    # リクエストの HTTP ステータスコードとリクエスト ID を表示して、リクエストステータスを確認します。
    print(f'status code: {result.status_code},'
          f' request id: {result.request_id},'
          )

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