アクセス制御リスト (ACL) は、バケットとオブジェクトのアクセス許可を管理するために使用されるポリシーです。 バケットの作成時にバケットのACLを設定するか、オブジェクトをobject Storage Service (OSS) にアップロードした後にオブジェクトのACLを設定できます。 オブジェクトとバケットのACLはいつでも変更できます。 set-aclコマンドは、バケットまたはオブジェクトのACLを設定または変更するために使用します。
このトピックでは、64ビットLinuxシステムに基づくサンプルコマンドラインを提供します。 他のシステムの場合は、を交換します。特定のバイナリ名を持つコマンドの /ossutil64。 詳細については、「ossutil」をご参照ください。
バケットのACLの設定または変更
コマンド構文
. /ossutil64 set-acl oss:// bucketname acl -b [-- retry-times <value>]
次の表に、set-aclコマンドを実行するために設定できるオプションを示します。
オプション
説明
bucketname
ACLを設定または変更するバケットの名前。
acl
バケットのACL。 有効な値:
private (デフォルト): バケット内のオブジェクトに対して読み取りおよび書き込み操作を実行できるのは、バケット所有者のみです。 他のユーザーはバケット内のオブジェクトにアクセスできません。
public-read: バケット内のオブジェクトに対して書き込み操作を実行できるのは、バケット所有者のみです。 匿名ユーザーを含む他のユーザーは、バケット内のオブジェクトに対してのみ読み取り操作を実行できます。 これにより、バケット内のデータへの不正アクセスと高額の料金が発生する可能性があります。 ユーザーが禁止されているデータまたは情報をアップロードすると、あなたの法的権利が侵害される可能性があります。 必要な場合を除き、バケットACLをpublic-readに設定しないことを推奨します。
public-read-write: 匿名ユーザーを含むすべてのユーザーが、バケット内のオブジェクトに対して読み取りおよび書き込み操作を実行できます。 これにより、バケット内のデータへの不正アクセスと高額の料金が発生する可能性があります。 バケットACLをpublic-read-writeに設定する場合は、注意してください。
-b
このオプションを指定しない場合、コマンドで指定されたACLはオブジェクトのACLです。 コマンドを使用してバケットACLを設定するには、このオプションを指定する必要があります。
-- retry-times
コマンドの実行に失敗した後のリトライ回数。 デフォルト値は 10 です。 有効な値: 1 ~ 500
例
次のコマンドを実行して、examplebucketという名前のバケットのACLをprivateに設定できます。
. /ossutil64 set-acl oss:// examplebucket private -b
オブジェクトのACLの設定または変更
コマンド構文
. /ossutil64 set-acl oss:// bucketname[/prefix] acl [-r] [-- include <value>] [-- exclude <value>] [-- version-id <value>] [-- job <value>] [-- retry-times <value>] [-- encoding-type <value>]
次の表に、set-aclコマンドを実行するために設定できるオプションを示します。
オプション
説明
bucketname
ACLを設定または変更するオブジェクトが格納されているバケットの名前。
プレフィックス
指定されたプレフィックスを名前に含むバケット内のリソース (ディレクトリやオブジェクトなど) 。
acl
オブジェクトのACL。 有効な値:
デフォルト: オブジェクトのACLは、オブジェクトが格納されているバケットのACLと同じです。
private (デフォルト): バケット内のオブジェクトに対して読み取りおよび書き込み操作を実行できるのは、バケット所有者のみです。 他のユーザーはバケット内のオブジェクトにアクセスできません。
public-read: バケット内のオブジェクトに対して書き込み操作を実行できるのは、バケット所有者のみです。 匿名ユーザーを含む他のユーザーは、バケット内のオブジェクトに対してのみ読み取り操作を実行できます。 これにより、バケット内のデータへの不正アクセスと高額の料金が発生する可能性があります。 ユーザーが禁止されているデータまたは情報をアップロードすると、あなたの法的権利が侵害される可能性があります。 必要な場合を除き、オブジェクトACLをpublic-readに設定しないことを推奨します。
public-read-write: 匿名ユーザーを含むすべてのユーザーが、バケット内のオブジェクトに対して読み取りおよび書き込み操作を実行できます。 これにより、バケット内のデータへの不正アクセスと高額の料金が発生する可能性があります。 オブジェクトACLをpublic-read-writeに設定する場合は、注意してください。
-r
このオプションを指定すると、プレフィックスオプションで指定されたプレフィックスを名前に含むすべてのオブジェクトのACLが設定されます。 このオプションを指定しない場合、ossutilはcloud_urlで指定されたオブジェクトのACLのみを構成します。
-含める
指定された条件を満たすすべてのオブジェクトにコマンドが適用されることを指定します。
詳細は、「set-acl」をご参照ください。
-除外
指定された条件を満たさないすべてのオブジェクトにコマンドが適用されることを指定します。
詳細は、「set-acl」をご参照ください。
-- version-id
ACLを構成または変更するオブジェクトのバージョンID。 このオプションは、バージョン管理が有効または一時停止されているバケット内のオブジェクトにのみ適用されます。
-仕事
複数のオブジェクト間で実行される同時タスクの数。 有効な値: 1 ~ 10000 デフォルト値: 3。
-- retry-times
コマンドの実行に失敗した後のリトライ回数。 デフォルト値は 10 です。 有効な値: 1 ~ 500
-- encoding-type
oss:// bucket_name
に続くプレフィックスをエンコードするために使用されるメソッド。 有効値: url このオプションを指定しない場合、プレフィックスはエンコードされません。例
次のコマンドを実行して、examplebucketという名前のバケット内のexampleobject.txtという名前のオブジェクトのACLをprivateに設定できます。
. /ossutil64 set-acl oss:// examplebucket/exampleobject.txtプライベート
次のコマンドを実行して、examplebucketという名前のバケット内のexampleobject.txtという名前のオブジェクトのバージョンのACLをprivateに設定できます。 バージョンのIDは
CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3 ****
です。. /ossutil64 set-acl oss:// examplebucket/exampleobject.txt private -- version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3 ****
次のコマンドを実行して、examplebucketという名前のバケット内のテストプレフィックスを名前に含むオブジェクトのACLをデフォルトに設定できます。
. /ossutil64 set-acl oss:// examplebucket/test default -r
次のコマンドを実行して、名前に examplebucketという名前のバケットのjpgサフィックスをprivateにします。
. /ossutil64 set-acl oss:// examplebucket private -- include "*.jpg" -r
次のコマンドを実行して、名前に文字列abcが含まれ、pngまたは。デフォルトへのexamplebucketという名前のバケット内のtxtサフィックス:
. /ossutil64 set-acl oss:// examplebucket default-include "* abc *"-exclude "*.png"-exclude "*.txt" -r
一般的なオプション
ossutilを使用して別のリージョンにあるバケットに切り替える場合は、コマンドに -eオプションを追加して、指定したバケットがあるリージョンのエンドポイントを指定します。 ossutilを使用して別のAlibaba Cloudアカウントに属するバケットに切り替える場合、コマンドに -iオプションを追加して、指定されたアカウントのAccessKey IDを指定し、コマンドに -kオプションを追加して、指定されたアカウントのAccessKeyシークレットを指定します。
たとえば、次のコマンドを実行して、examplebucketという名前のバケットのACLをprivateに設定できます。 examplebucketバケットは中国 (杭州) リージョンにあり、別のAlibaba Cloudアカウントが所有しています。
. /ossutil64 set-acl oss:// testbucket private -b -e oss-cn-shanghai.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA **** -k 67DLVBkH7EamOjy2W5RVAHUY9H ****
同期コマンドに使用できるその他の一般的なオプションの詳細については、「オプションの表示」をご参照ください。