バケットの作成時にアクセス制御リスト (ACL) を設定したり、ビジネス要件に基づいて作成したバケットのACLを変更したりできます。 このトピックでは、バケットのACLを設定およびクエリする方法について説明します。
バケットACL
次の表に、バケットに設定できるACLを示します。
ACL | 説明 | 値 |
プライベート | バケット内のオブジェクトに対する読み取りおよび書き込み権限を持つのは、バケット所有者と許可されたユーザーのみです。 他のユーザーはバケット内のオブジェクトにアクセスできません。 | 非公開 |
一般公開 | バケット内のオブジェクトに対する読み取りおよび書き込み権限を持つのは、バケット所有者と許可されたユーザーのみです。 他のユーザーには、バケット内のオブジェクトに対する読み取り権限のみがあります。 ACLをこの値に設定するときは注意してください。 | 公開読み取り |
パブリック読み取り /書き込み | すべてのユーザーは、バケット内のオブジェクトに対する読み取りおよび書き込み権限を持っています。 ACLをこの値に設定するときは注意してください。 | 公開読み取り/書き込み |
バケットのACLの設定
バケット作成時のACLの設定
次のサンプルコードは、バケットを作成するときにACLを設定する方法の例を示しています。
const OSS = require('ali-OSS ');
const client = new OSS({
// バケットが配置されているリージョンを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンをoss-cn-Hangzhouに設定します。
region: 'yourregion' 、
// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、環境変数OSS_ACCESS_KEY_IDとOSS_ACCESS_KEY_SECRETが設定されていることを確認してください。
accessKeyId: process.env.OSS_ACCESS_KEY_ID、
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET、
// バケットの名前を指定します。
bucket: 'yourbucketname'
});
// この例では、バケットを作成するときにACLがpublic readに設定されます。
async関数putBucket() {
const acl = 'public-read'; try {
await client.putBucket('yourbucketname', { acl });
} catch (エラー) {
console.log(error)
}
}
putBucket()
バケット作成後のACLの変更
次のサンプルコードは、バケットの作成後にACLを変更する方法の例を示しています。
const OSS = require('ali-OSS ');
const client = new OSS({
// バケットが配置されているリージョンを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンをoss-cn-Hangzhouに設定します。
region: 'yourregion' 、
// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、環境変数OSS_ACCESS_KEY_IDとOSS_ACCESS_KEY_SECRETが設定されていることを確認してください。
accessKeyId: process.env.OSS_ACCESS_KEY_ID、
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET、
// バケットの名前を指定します。
bucket: 'yourbucketname'
});
async関数putBucketACL() {
// この例では、バケットの作成後にACLがprivateに変更されます。
const acl = 'private'
try {
await client.putBucketACL('yourbucketname' 、acl)
} catch (エラー) {
console.log(error)
}
}
putBucketACL()
バケットのACLの照会
次のサンプルコードは、バケットのACLを照会する方法の例を示しています。
const OSS = require('ali-OSS ');
const client = new OSS({
// バケットが配置されているリージョンを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンをoss-cn-Hangzhouに設定します。
region: 'yourregion' 、
// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、環境変数OSS_ACCESS_KEY_IDとOSS_ACCESS_KEY_SECRETが設定されていることを確認してください。
accessKeyId: process.env.OSS_ACCESS_KEY_ID、
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET、
// バケットの名前を指定します。
bucket: 'yourbucketname'
});
// バケットのACLを照会します。
async関数getBucketAcl() {
const result = await client.getBucketACL('yourbucketname')
console.log('acl: ', result.acl)
}
getBucketAcl()
参考資料
バケットのACLを管理するために使用される完全なサンプルコードについては、GitHubをご覧ください。
バケットのACLを設定するために呼び出すことができるAPI操作の詳細については、「PutBucketAcl」をご参照ください。
バケットのACLを照会するために呼び出すAPI操作の詳細については、「GetBucketAcl」をご参照ください。