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

Object Storage Service:OSS SDK for Python 2.0 を使用してファイルのアクセス権限を管理する

最終更新日:Oct 21, 2025

このトピックでは、OSS SDK for PHP 2.0 を使用してオブジェクトのアクセスコントロールリスト (ACL) を管理する方法について説明します。

使用上の注意

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

  • オブジェクトのアクセス権限を設定するには、oss:PutObjectAcl 権限が必要です。オブジェクトのアクセス権限を取得するには、oss:GetObjectAcl 権限が必要です。詳細については、「RAM ユーザーへのカスタムポリシーの付与」をご参照ください。

メソッド

オブジェクトの ACL の設定

put_object_acl(request: PutObjectAclRequest, **kwargs) → PutObjectAclResult

バケットのACLの照会

get_object_acl(request: GetObjectAclRequest, **kwargs) → GetObjectAclResult

リクエストパラメーター

パラメーター名

タイプ

説明

request

PutObjectAclRequest

リクエストパラメーター。詳細については、「PutObjectAclRequest」をご参照ください。

GetObjectAclRequest

リクエストパラメーター。詳細については、「GetObjectAclRequest」をご参照ください。

レスポンスパラメーター

タイプ

説明

PutObjectAclResult

戻り値。詳細については、「PutObjectAclResult」をご参照ください。

GetObjectAclResult

戻り値。詳細については、「GetObjectAclResult」をご参照ください。

ファイルの ACL を設定するメソッドの完全な定義については、「put_object_acl」をご参照ください。

ファイルの ACL を取得するメソッドの完全な定義については、「get_object_acl」をご参照ください。

ACL タイプ

次の表に、オブジェクトに設定できる ACL を示します。

ACL

説明

ACL 値

バケットから継承

ファイルはバケットからアクセス権限を継承します。

default

非公開

ファイル所有者と承認されたユーザーのみがファイルを読み書きできます。他のユーザーはファイルにアクセスできません。

private

公開読み取り

ファイル所有者と承認されたユーザーのみがファイルを読み書きできます。他のユーザーはファイルのみを読み取ることができます。この権限は注意して使用してください。

public-read

公開読み書き

すべてのユーザーがファイルを読み書きできます。この権限は注意して使用してください。

public-read-write

オブジェクトの ACL は、そのオブジェクトを含むバケットの ACL よりも優先されます。たとえば、バケットの ACL が非公開で、バケット内のオブジェクトの ACL が公開読み書きの場合、すべてのユーザーにそのオブジェクトに対する読み取りおよび書き込み権限が付与されます。オブジェクトの ACL が設定されていない場合、オブジェクトの ACL は、そのオブジェクトが格納されているバケットの ACL と同じになります。

サンプルコード

以下に、オブジェクトの ACL を設定および取得するためのサンプルコードを示します。

import argparse
import alibabacloud_oss_v2 as oss

# コマンドライン引数パーサーを作成します。
parser = argparse.ArgumentParser(description="put object acl sample")
# 必須パラメーターを追加します: リージョン、バケット名、オブジェクトキー、およびアクセスコントロールリスト (ACL)。
parser.add_argument('--region', help='The region in which the bucket is located.', required=True)
parser.add_argument('--bucket', help='The name of the bucket.', required=True)
parser.add_argument('--endpoint', help='The domain names that other services can use to access OSS')
parser.add_argument('--key', help='The name of the object.', required=True)
parser.add_argument('--acl', help='Specify the access permission ACL for the object.', 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

    # OSS クライアントを作成します。
    client = oss.Client(cfg)

    # オブジェクトの ACL を設定します。
    result = client.put_object_acl(oss.PutObjectAclRequest(
        bucket=args.bucket,  # バケット名。
        key=args.key,  # オブジェクトキー。
        acl=args.acl,  # 新しい ACL 値。
    ))

    # ACL を設定した後、出力情報を表示します。
    print(f'status code: {result.status_code},'
          f' request id: {result.request_id},'
          f' version id: {result.version_id},'
    )

    # オブジェクトの現在の ACL 設定を取得して表示します。
    result = client.get_object_acl(oss.GetObjectAclRequest(
        bucket=args.bucket,
        key=args.key,
    ))

    print(f'status code: {result.status_code},'
          f' request id: {result.request_id},'
          f' acl: {result.acl},'
          f' version id: {result.version_id},'
    )

# このスクリプトが直接実行されるときに main 関数を呼び出します。
if __name__ == "__main__":
    main()

関連ドキュメント

  • ファイルの ACL を設定するための完全なサンプルコードについては、「put_object_acl.py」をご参照ください。

  • ファイルの ACL を取得するための完全なサンプルコードについては、「get_object_acl.py」をご参照ください。