バケットレベルのアクセス制御リスト (ACL) に加えて、Object Storage Service (OSS) はオブジェクトレベルのACLを提供します。 オブジェクトをアップロードするときにACLを設定したり、アップロード後にACLを変更したりできます。
オブジェクトACL
次の表に、オブジェクトに対して構成できるACLを示します。
オブジェクトのACLは、オブジェクトが格納されているバケットのACLよりも優先されます。 たとえば、プライベートバケット内のオブジェクトのACLがpublic-readに設定されている場合、匿名ユーザーを含むすべてのユーザーがオブジェクトを読み取ることができます。
ACL | 説明 | 値 |
バケットから継承 | オブジェクトのACLを設定しない場合、オブジェクトのACLは、オブジェクトが格納されているバケットのACLと同じになります。 | Aliyun::OSS::ACL::DEFAULT |
プライベート | オブジェクトの読み取りおよび書き込み操作を実行できるのは、オブジェクトの所有者だけです。 他のユーザーはオブジェクトにアクセスできません。 | Aliyun::OSS::ACL:: プライベート |
公開読み取り | オブジェクトに対して書き込み操作を実行できるのは、オブジェクト所有者だけです。 匿名ユーザーを含む他のユーザーは、オブジェクトのみを読み取ることができます。 警告 すべてのユーザーがインターネット経由でオブジェクトにアクセスできます。 これにより、オブジェクトへの予期しないアクセスと予期しない高い料金が発生する可能性があります。 オブジェクトACLをpublic-readに設定する場合は注意してください。 | Aliyun::OSS::ACL::PUBLIC_READ |
パブリック読み取り /書き込み | 匿名ユーザーを含むすべてのユーザーは、オブジェクトに対して読み取りおよび書き込み操作を実行できます。 警告 オブジェクトACLをこの値に設定すると、すべてのユーザーがオブジェクトにアクセスし、インターネット経由でオブジェクトにデータを書き込むことができます。 これにより、バケット内のデータへの不正アクセスと高額の料金が発生する可能性があります。 ユーザーが禁止されているデータまたは情報をアップロードすると、正当な利益と権利が侵害される可能性があります。 したがって、特別な場合を除き、オブジェクトACLをpublic-read-writeに設定しないことをお勧めします。 | Aliyun::OSS::ACL::PUBLIC_READ_WRITE |
例
次のコードは、オブジェクトのACLを設定および取得する方法の例を示しています。
'aliyun/oss 'が必要です
client = Aliyun::OSS::Client.new (
# この例では、中国 (杭州) リージョンのエンドポイントが使用されます。 実際のエンドポイントを指定します。
エンドポイント: 'https:// oss-cn-hangzhou.aliyuncs.com '、
# 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。
access_key_id: ENV['OSS_ACCESS_KEY_ID '] 、
access_key_secret: ENV['OSS_ACCESS_KEY_SECRET ']
)
# バケットの名前を指定します。 例: examplebucket.
bucket = client.get_bucket('examplebucket')
# オブジェクトのフルパスを指定します。 バケット名をフルパスに含めないでください。 例: exampledir/example.txt。
# オブジェクトのアップロード時に指定されたオブジェクトACLを照会します。
acl = bucket.get_object_acl('exampledir/example.txt ')
aclを置く
# オブジェクトACLを変更します。
bucket.set_object_acl('exampledir/example.txt ', Aliyun::OSS::ACL:::PUBLIC_READ)
acl = bucket.get_object_acl('exampledir/example.txt ')
aclを置く
参考資料
オブジェクトのACLを設定するために呼び出すAPI操作の詳細については、「PutObjectACL」をご参照ください。
オブジェクトのACLを照会するために呼び出すAPI操作の詳細については、「GetObjectACL」をご参照ください。