全部产品
Search
文档中心

Object Storage Service:Kelola direktori (Node.js SDK)

更新时间:Nov 30, 2025

Untuk menyederhanakan pengorganisasian dan pengelolaan sejumlah besar objek—yang dapat menjadi sulit dalam struktur datar—Object Storage Service (OSS) menyediakan fitur direktori yang mensimulasikan struktur folder.

Buat direktori

Kode berikut menunjukkan cara membuat direktori.

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

const client = new OSS({
  // Setel yourregion ke wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel region ke oss-cn-hangzhou.
  region: 'yourregion',
  // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  // Setel bucket ke nama bucket Anda.
  bucket: 'examplebucket',
});

async function putBuffer () {
  try {
    // Setel nama direktori. Nama tersebut harus diakhiri dengan garis miring (/).
    const result = await client.put('exampledir/', new Buffer(''));
    console.log(result);
  } catch (e) {
    console.log(e);
  }
}

putBuffer();

Hapus direktori

Peringatan

Menghapus direktori juga akan menghapus semua subdirektori dan objek di dalamnya. Lakukan dengan hati-hati.

Kode berikut menunjukkan cara menghapus direktori log/ beserta semua objek di dalamnya.

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

const client = new OSS({
  // Setel yourregion ke wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel region ke oss-cn-hangzhou.
  region: 'yourregion',
  // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  // Setel bucket ke nama bucket Anda.
  bucket: 'yourbucketname'
});

// Tangani permintaan yang gagal untuk mencegah promise.all terganggu dan mengembalikan alasan kegagalan serta nama file yang gagal.
async function handleDel(name, options) {
  try {
    await client.delete(name);
  } catch (error) {
    error.failObjectName = name;
    return error;
  }
}

// Hapus beberapa file.
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);
}
// Hapus direktori dan semua file di dalamnya.
deletePrefix('log/')

Referensi

  • Buat folder

    Untuk informasi selengkapnya tentang operasi API yang digunakan untuk membuat folder, lihat PutObject.

  • Hapus direktori

    • Untuk kode contoh lengkap guna menghapus direktori beserta semua objek di dalamnya, lihat contoh di GitHub.

    • Untuk informasi selengkapnya tentang operasi API yang digunakan untuk menghapus folder beserta semua file di dalamnya, lihat DeleteObject.