全部產品
Search
文件中心

Object Storage Service:Node.js管理儲存空間存取權限

更新時間:Oct 29, 2024

您可以在建立儲存空間(Bucket)時設定儲存空間的存取權限(ACL),也可以在建立儲存空間後根據自己的業務需求修改儲存空間的存取權限。本文介紹如何設定和擷取儲存空間的存取權限。

讀寫權限類型

儲存空間的存取權限有以下三類:

存取權限

描述

存取權限值

私人

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

private

公用讀取

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

public-read

公用讀寫

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

public-read-write

設定儲存空間的存取權限

建立儲存空間的同時設定其存取權限

以下代碼用於建立儲存空間的同時設定其存取權限:

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

const client = new 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,
  // 填寫儲存空間名稱。
  bucket: 'yourbucketname'
});
// 此處以建立儲存空間的同時設定其存取權限為public-read為例。
async function putBucket() {
  const acl = 'public-read';   try {
    await client.putBucket('yourbucketname', { acl });
  } catch (error) {
    console.log(error)
  }
}

putBucket()

建立儲存空間後修改其存取權限

以下代碼用於建立儲存空間後修改其存取權限:

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

const client = new 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,
  // 填寫儲存空間名稱。
  bucket: 'yourbucketname'
});

async function putBucketACL() {
// 此處以建立儲存空間後修改其存取權限為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填寫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,
  // 填寫儲存空間名稱。
  bucket: 'yourbucketname'
});

// 擷取儲存空間的存取權限。
async function getBucketAcl() {
  const result = await client.getBucketACL('yourbucketname')
  console.log('acl: ', result.acl)
}

getBucketAcl()

相關文檔

  • 關於管理儲存空間讀寫權限的完整範例程式碼,請參見GitHub樣本

  • 關於設定儲存空間讀寫權限的API介面說明,請參見PutBucketAcl

  • 關於擷取儲存空間讀寫權限的API介面說明,請參見GetBucketAcl