バケットの作成時に、バケットのアクセス制御リスト (ACL) を設定できます。 バケットの作成後に ACL を変更することもできます。 このトピックでは、バケットの ACL を設定および取得する方法について説明します。
読み書き権限の種類
バケットには、次の 3 種類のアクセス権限があります。
アクセス権限 | 説明 | ACL 値 |
private | バケットのオーナーと権限を付与されたユーザーは、バケット内のファイルに対する読み書き権限を持ちます。 他のユーザーはバケット内のファイルにアクセスできません。 | private |
public-read | バケットのオーナーと権限を付与されたユーザーは、バケット内のファイルに対する読み書き権限を持ちます。 他のユーザーはファイルに対する読み取り権限のみを持ちます。 この権限は慎重に使用してください。 | public-read |
public-read-write | すべてのユーザーがバケット内のファイルに対する読み書き権限を持ちます。 この権限は慎重に使用してください。 | public-read-write |
バケットの ACL の設定
バケット作成時の ACL の設定
次のコードは、バケットの作成時にバケットの ACL を設定する方法を示します。
const OSS = require('ali-oss');
const client = new OSS({
// バケットが配置されているリージョンに yourregion を設定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンを 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,
authorizationV4: true,
// バケット名を指定します。
bucket: 'yourbucketname'
});
// この例では、バケットの作成時にバケットの ACL を public-read に設定する方法を示します。
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({
// バケットが配置されているリージョンに yourregion を設定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンを 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,
authorizationV4: true,
// バケット名を指定します。
bucket: 'yourbucketname'
});
async function putBucketACL() {
// この例では、バケットの作成後にバケットの ACL を private に変更する方法を示します。
const acl = 'private'
try {
await client.putBucketACL('yourbucketname', acl)
} catch (error) {
console.log(error)
}
}
putBucketACL()バケットのアクセス権限の取得
次のコードは、バケットのアクセス権限を取得します。
const OSS = require('ali-oss');
const client = new OSS({
// バケットが配置されているリージョンに yourregion を設定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンを 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,
authorizationV4: true,
// バケット名を指定します。
bucket: 'yourbucketname'
});
// バケットの ACL を取得します。
async function getBucketAcl() {
const result = await client.getBucketACL('yourbucketname')
console.log('acl: ', result.acl)
}
getBucketAcl()関連ドキュメント
バケット ACL の管理に関する完全なサンプルコードについては、「GitHub の例」をご参照ください。
バケット ACL を設定するための API 操作の詳細については、「PutBucketAcl」をご参照ください。
バケット ACL を取得するための API 操作の詳細については、「GetBucketAcl」をご参照ください。