バケットは、Object Storage Service (OSS) に格納されるオブジェクトのコンテナーです。すべてのオブジェクトはバケットに格納されます。このトピックでは、バケットのアクセス制御リスト (ACL) を設定および取得する方法について説明します。
注意事項
このトピックでは、中国 (杭州) リージョンのパブリックエンドポイントを使用します。OSS と同じリージョンにある他の Alibaba Cloud サービスから OSS にアクセスする場合は、内部エンドポイントを使用します。OSS のリージョンとエンドポイントの詳細については、「リージョンとエンドポイント」をご参照ください。
このトピックでは、アクセス認証情報は環境変数から取得されます。アクセス認証情報の設定方法の詳細については、「Python 1.0 用 OSS SDK を使用したアクセス認証情報の設定」をご参照ください。
このトピックでは、OSS エンドポイントを使用して OSSClient インスタンスを作成します。カスタムドメイン名または Security Token Service (STS) を使用して OSSClient インスタンスを作成する場合は、「初期化」をご参照ください。
バケットの ACL を設定するには、
oss:PutBucketAcl権限が必要です。バケットの ACL を取得するには、oss:GetBucketAcl権限が必要です。詳細については、「RAM ユーザーへのカスタムポリシーのアタッチ」をご参照ください。
バケットの ACL の設定
バケットには、次の 3 種類の ACL があります:
ACL | 説明 | メソッド |
private | バケットのオーナーと承認されたユーザーのみが、バケット内のオブジェクトに対する読み取りおよび書き込み権限を持ちます。他のユーザーはオブジェクトにアクセスできません。 | oss2.BUCKET_ACL_PRIVATE |
public-read | バケットのオーナーと承認されたユーザーは、バケット内のオブジェクトに対する読み取りおよび書き込み権限を持ちます。他のユーザーはオブジェクトに対する読み取り権限のみを持ちます。この権限の使用には注意が必要です。 | oss2.BUCKET_ACL_PUBLIC_READ |
public-read-write | すべてのユーザーがバケット内のオブジェクトに対する読み取りおよび書き込み権限を持ちます。この権限の使用には注意が必要です。 | oss2.BUCKET_ACL_PUBLIC_READ_WRITE |
次のサンプルコードは、バケットの ACL を設定する方法の例を示しています:
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# 環境変数からアクセス認証情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# バケットが配置されているリージョンのエンドポイントを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# バケットが配置されているリージョン (cn-hangzhou など) を指定します。このパラメーターは V4 署名に必要です。
region = "cn-hangzhou"
# yourBucketName をバケット名に設定します。
bucket = oss2.Bucket(auth, endpoint, "yourBucketName", region=region)
# バケットの ACL を非公開に設定します。
bucket.put_bucket_acl(oss2.BUCKET_ACL_PRIVATE)バケットのアクセス権限の取得
次のコードは、バケットの ACL を取得する方法の例を示しています:
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# 環境変数からアクセス認証情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# バケットが配置されているリージョンのエンドポイントを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# バケットが配置されているリージョン (cn-hangzhou など) を指定します。このパラメーターは V4 署名に必要です。
region = "cn-hangzhou"
# yourBucketName をバケット名に設定します。
bucket = oss2.Bucket(auth, endpoint, "yourBucketName", region=region)
# バケットの ACL を取得します。
print(bucket.get_bucket_acl().acl)関連ドキュメント
バケット ACL の管理方法を示す完全なサンプルコードについては、「GitHub」をご参照ください。
バケット ACL を設定するための API 操作の詳細については、「PutBucketAcl」をご参照ください。
バケット ACL を取得するための API 操作の詳細については、「GetBucketAcl」をご参照ください。