Object Storage Service (OSS) は、バケットレベルのアクセス制御リスト (ACL) に加えて、オブジェクトレベルの ACL も提供します。オブジェクトをアップロードする際に ACL を設定することも、既存のオブジェクトの ACL をいつでも変更することもできます。
アクセス権限の種類
オブジェクトのアクセス権限 (ACL) には、次の 4 種類があります。
アクセス権限 | 説明 | アクセス権限の値 |
バケットから継承 | オブジェクトはバケットのアクセス権限を継承します。 | default |
非公開 | オブジェクトの所有者と権限を付与されたユーザーは読み取りおよび書き込み権限を持ちます。他のユーザーはオブジェクトにアクセスする権限がありません。 | private |
公開読み取り | オブジェクトの所有者と権限を付与されたユーザーは読み取りおよび書き込み権限を持ちます。他のユーザーは読み取り権限のみを持ちます。この権限は慎重に使用してください。 | public-read |
公開読み書き | すべてのユーザーがオブジェクトに対する読み取りおよび書き込み権限を持ちます。この権限は慎重に使用してください。 | public-read-write |
オブジェクトのアクセス権限の設定
次のコードは、オブジェクトの ACL を設定する方法の例を示しています。
const oss = require('ali-oss');
const client = oss({
// region をバケットが所在するリージョンに設定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、region を 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 をご利用のバケット名に設定します。
bucket: 'yourbucketname'
});
async function setACL() {
try {
// yourObjectName をオブジェクトの完全なパスに設定します。完全なパスにバケット名を含めることはできません。
await client.putACL('yourObjectName', 'private');
console.log('Set ACL successfully');
} catch (e) {
console.error(e);
}
}
setACL();オブジェクトのアクセス権限の取得
次のコードは、オブジェクトの ACL を取得する方法の例を示しています。
const oss = require('ali-oss');
const client = oss({
// region をバケットが所在するリージョンに設定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、region を 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 をご利用のバケット名に設定します。
bucket: 'yourbucketname',
});
async function getACL() {
try {
// yourObjectName をオブジェクトの完全なパスに設定します。完全なパスにバケット名を含めることはできません。
const result = await client.getACL('yourObjectName');
console.log(result.acl);
} catch (e) {
console.error(e);
}
}
getACL();関連ドキュメント
オブジェクトのアクセス権限を管理するための完全なサンプルコードについては、GitHub の例をご参照ください。
オブジェクトのアクセス権限を設定するための API 操作の詳細については、「PutObjectACL」をご参照ください。
オブジェクトのアクセス権限を取得するための API 操作の詳細については、「GetObjectACL」をご参照ください。