バケットレベルのアクセス制御リスト (ACL) に加えて、Object Storage Service (OSS) はオブジェクトレベルのACLを提供します。 オブジェクトをアップロードするとき、またはアップロードされたオブジェクトのACLを変更するときに、オブジェクトのACLを設定できます。
オブジェクトACL
次の表に、オブジェクトに対して構成できるACLを示します。
ACL | 説明 | 値 |
バケットから継承 | オブジェクトのACLは、オブジェクトが格納されているバケットのACLと同じです。 | default |
プライベート | オブジェクトに対する読み取りおよび書き込み権限を持つのは、オブジェクト所有者または許可されたユーザーのみです。 | 非公開 |
一般公開 | オブジェクトに対する読み取りおよび書き込み権限を持つのは、オブジェクト所有者と許可されたユーザーのみです。 他のユーザーには、オブジェクトに対する読み取り権限のみがあります。 ACLをこの値に設定するときは注意してください。 | 公開読み取り |
パブリック読み取り /書き込み | すべてのユーザーがオブジェクトに対する読み取りおよび書き込み権限を持っています。 ACLをこの値に設定するときは注意してください。 | 公開読み取り/書き込み |
オブジェクトの ACL の設定
次のサンプルコードは、オブジェクトのACLを設定する方法の例を示しています。
const oss = require('ali-oss ');
const client = 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関数setACL() {
try {
// オブジェクトのフルパスを指定します。 バケット名をフルパスに含めないでください。
await client.putACL('yourObjectName' 、'private');
console.log('Set ACL successfully');
} catch (e) {
console.error(e);
}
}
setACL();
オブジェクトのACLを照会する
次のサンプルコードは、オブジェクトのACLを照会する方法の例を示しています。
const oss = require('ali-oss ');
const client = 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関数getACL() {
try {
// オブジェクトのフルパスを指定します。 バケット名をフルパスに含めないでください。
const result = await client.getACL('yourObjectName');
console.log(result.acl);
} catch (e) {
console.error(e);
}
}
getACL();
参考資料
オブジェクトのACLを管理するために使用される完全なサンプルコードについては、GitHubをご覧ください。
オブジェクトのACLを設定するために呼び出すAPI操作の詳細については、「PutObjectACL」をご参照ください。
オブジェクトのACLを照会するために呼び出すAPI操作の詳細については、「GetObjectACL」をご参照ください。