すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:オブジェクトのアクセス権限の管理 (Node.js SDK)

最終更新日:Nov 30, 2025

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」をご参照ください。