バケットの作成時にアクセス制御リスト (ACL) を設定したり、ビジネス要件に基づいて作成したバケットのACLを変更したりできます。 このトピックでは、バケットのACLを設定およびクエリする方法について説明します。
バケットACL
次の表に、バケットに設定できるACLを示します。
ACL | 説明 | 値 |
プライベート | バケット内のオブジェクトに対する読み取りおよび書き込み権限を持つのは、バケット所有者と許可されたユーザーのみです。 他のユーザーはバケット内のオブジェクトにアクセスできません。 | 非公開 |
一般公開 | バケット内のオブジェクトに対する読み取りおよび書き込み権限を持つのは、バケット所有者と許可されたユーザーのみです。 他のユーザーには、バケット内のオブジェクトに対する読み取り権限のみがあります。 ACLをこの値に設定するときは注意してください。 | 公開読み取り |
パブリック読み取り /書き込み | すべてのユーザーは、バケット内のオブジェクトに対する読み取りおよび書き込み権限を持っています。 ACLをこの値に設定するときは注意してください。 | 公開読み取り/書き込み |
バケットのACLの設定
バケット作成時のACLの設定
次のサンプルコードは、バケットを作成するときにACLを設定する方法の例を示しています。
const OSS = require('ali-oss');
const client = new OSS({
// Specify the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the region to oss-cn-hangzhou.
region: 'yourregion',
// Obtain access credentials from environment variables. Before you run the sample code, make sure that you have configured environment variables OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET.
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// Specify the name of the bucket.
bucket: 'yourbucketname'
});
// In this example, the ACL is set to public read when you create the bucket.
async function putBucket() {
const acl = 'public-read'; try {
await client.putBucket('yourbucketname', { acl });
} catch (error) {
console.log(error)
}
}
putBucket()
バケット作成後のACLの変更
次のサンプルコードは、バケットの作成後にACLを変更する方法の例を示しています。
const OSS = require('ali-oss');
const client = new OSS({
// Specify the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the region to oss-cn-hangzhou.
region: 'yourregion',
// Obtain access credentials from environment variables. Before you run the sample code, make sure that you have configured environment variables OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET.
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// Specify the name of the bucket.
bucket: 'yourbucketname'
});
async function putBucketACL() {
// In this example, the ACL is changed to private after you create the bucket.
const acl = 'private'
try {
await client.putBucketACL('yourbucketname', acl)
} catch (error) {
console.log(error)
}
}
putBucketACL()
バケットのACLの照会
次のサンプルコードは、バケットのACLを照会する方法の例を示しています。
const OSS = require('ali-oss');
const client = new OSS({
// Specify the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the region to oss-cn-hangzhou.
region: 'yourregion',
// Obtain access credentials from environment variables. Before you run the sample code, make sure that you have configured environment variables OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET.
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// Specify the name of the bucket.
bucket: 'yourbucketname'
});
// Query the ACL of the bucket.
async function getBucketAcl() {
const result = await client.getBucketACL('yourbucketname')
console.log('acl: ', result.acl)
}
getBucketAcl()
関連ドキュメント
バケットのACLを管理するために使用される完全なサンプルコードについては、GitHubをご覧ください。
バケットのACLを設定するために呼び出すことができるAPI操作の詳細については、「PutBucketAcl」をご参照ください。
バケットのACLを照会するために呼び出すAPI操作の詳細については、「GetBucketAcl」をご参照ください。