全部產品
Search
文件中心

Object Storage Service:Node.js管理檔案存取權限

更新時間:Oct 29, 2024

除Bucket層級ACL以外,OSS還提供了Object層級的ACL。您可以在上傳Object時設定相應的ACL,也可以在Object上傳後的任意時間內根據自己的業務需求隨時修改ACL。

讀寫權限類型

檔案的存取權限(ACL)有以下四種:

存取權限

描述

存取權限值

繼承Bucket

檔案遵循儲存空間的存取權限。

default

私人

檔案的擁有者和授權使用者有該檔案的讀寫權限,其他使用者沒有許可權操作該檔案。

private

公用讀取

檔案的擁有者和授權使用者有該檔案的讀寫權限,其他使用者只有檔案的讀許可權。請謹慎使用該許可權。

public-read

公用讀寫

所有使用者都有該檔案的讀寫權限。請謹慎使用該許可權。

public-read-write

設定檔案存取權限

以下代碼用於設定指定Object的存取權限:

const oss = require('ali-oss');

const client = oss({ 
  // yourregion填寫Bucket所在地區。以華東1(杭州)為例,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,
  // yourbucketname填寫儲存空間名稱。
  bucket: 'yourbucketname'
});
  
async function setACL() {
  try {
    // yourObjectName填寫不包含Bucket名稱在內的Object的完整路徑。
    await client.putACL('yourObjectName', 'private');
    console.log('Set ACL successfully');
  } catch (e) {
    console.error(e);
  }
}

setACL();

擷取檔案存取權限

以下代碼用於擷取指定Object的存取權限:

const oss = require('ali-oss');

const client = oss({
  // yourregion填寫Bucket所在地區。以華東1(杭州)為例,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,
  // yourbucketname填寫儲存空間名稱。
  bucket: 'yourbucketname',
});
  
async function getACL() {
  try {
    // yourObjectName填寫不包含Bucket名稱在內的Object的完整路徑。
    const result = await client.getACL('yourObjectName');
    console.log(result.acl);
  } catch (e) {
    console.error(e);
  }
}

getACL();

相關文檔

  • 關於管理檔案存取權限的完整範例程式碼,請參見GitHub樣本

  • 關於設定檔案存取權限的API介面說明,請參見PutObjectACL

  • 關於擷取檔案存取權限的API介面說明,請參見GetObjectACL