全部產品
Search
文件中心

Object Storage Service:管理目錄(Node.js SDK)

更新時間:Nov 29, 2025

OSS中檔案數量龐大時,所有檔案平鋪儲存會導致尋找困難、大量操作複雜。為瞭解決這些問題,OSS提供了目錄功能,通過類比檔案夾的結構來組織和管理海量對象。

建立目錄

以下代碼用於建立目錄。

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,
  // 填寫Bucket名稱。
  bucket: 'examplebucket',
});

async function putBuffer () {
  try {
    // 填寫目錄名稱,目錄需以正斜線結尾。
    const result = await client.put('exampledir/', new Buffer(''));
    console.log(result);
  } catch (e) {
    console.log(e);
  }
}

putBuffer();

刪除目錄

警告

刪除目錄會同步刪除目錄下包含的子目錄以及所有檔案,請謹慎操作。

以下代碼用於刪除log/目錄及目錄下的所有檔案。

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

// 處理請求失敗的情況,防止promise.all中斷,並返回失敗原因和失敗檔案名稱。
async function handleDel(name, options) {
  try {
    await client.delete(name);
  } catch (error) {
    error.failObjectName = name;
    return error;
  }
}

// 刪除多個檔案。
async function deletePrefix(prefix) {
  const list = await client.list({
    prefix: prefix,
  });

  list.objects = list.objects || [];
  const result = await Promise.all(list.objects.map((v) => handleDel(v.name)));
  console.log(result);
}
// 刪除目錄及目錄下的所有檔案。
deletePrefix('log/')

相關文檔

  • 建立目錄

    關於建立目錄的API介面說明,請參見PutObject

  • 刪除目錄

    • 關於刪除目錄及目錄下所有檔案的完整範例程式碼,請參見GitHub樣本

    • 關於刪除目錄及目錄下所有檔案的API介面說明,請參見DeleteObject