全部产品
Search
文档中心

Object Storage Service:Hapus file (Node.js SDK)

更新时间:Nov 30, 2025

Topik ini menjelaskan cara menghapus satu objek, beberapa objek tertentu, objek dengan awalan nama tertentu, atau direktori beserta seluruh objek di dalamnya.

Peringatan

Berhati-hatilah saat melakukan operasi penghapusan. Objek yang telah dihapus tidak dapat dipulihkan.

Hapus satu file

Kode berikut menunjukkan cara menghapus objek exampleobject.txt dari bucket examplebucket.

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

const client = new OSS({
  // Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur Region ke oss-cn-hangzhou.
  region: 'oss-cn-hangzhou',
  // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode 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,
  authorizationV4: true,
  // Tentukan nama bucket.
  bucket: 'examplebucket',
});

async function deleteObject() {
  try {
    // Tentukan path lengkap objek. Path lengkap tidak boleh mengandung nama bucket.
    const result = await client.delete('exampleobject.txt');
    console.log(result);
  } catch (error) {
    console.log(error);
  }
}

deleteObject();

Hapus file secara batch

Anda dapat menghapus hingga 1.000 objek sekaligus secara manual. Anda dapat menghapus beberapa objek tertentu, objek dengan awalan tertentu, atau direktori beserta seluruh objek di dalamnya.

Tanggapan untuk operasi penghapusan batch dapat berada dalam salah satu dari dua mode berikut:

  • Mode rinci: Badan respons dari OSS berisi hasil penghapusan setiap objek. Ini adalah mode default.

  • Mode quiet: OSS tidak mengembalikan badan respons.

OSS juga mendukung penghapusan objek otomatis dengan mengonfigurasi aturan siklus hidup. Untuk informasi selengkapnya, lihat Aturan siklus hidup berdasarkan waktu modifikasi terakhir.

Hapus beberapa objek dengan nama tertentu

Kode berikut menunjukkan cara menghapus beberapa objek dengan nama tertentu.

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

const client = new OSS({
  // Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur Region ke oss-cn-hangzhou.
  region: 'oss-cn-hangzhou',
  // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode 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,
  authorizationV4: true,
  // Tentukan nama bucket.
  bucket: 'examplebucket',
});

async function deleteMulti() {
  try {
    // Tentukan path lengkap objek yang akan dihapus dan atur mode respons ke verbose. Path lengkap tidak boleh mengandung nama bucket.
    // let result = await client.deleteMulti(['exampleobject-1', 'exampleobject-2', 'testfolder/sampleobject.txt']);
    // console.log(result);
    // Tentukan path lengkap objek yang akan dihapus dan atur mode respons ke quiet. Path lengkap tidak boleh mengandung nama bucket.
    const result = await client.deleteMulti(['exampleobject-1', 'exampleobject-2', 'testfolder/sampleobject.txt'], {quiet: true});
    console.log(result);
  } catch (error) {
    console.log(error);
  }
}

deleteMulti();

Hapus beberapa objek dengan awalan tertentu atau dalam direktori

Kode berikut menunjukkan cara menghapus beberapa objek dengan awalan tertentu, atau direktori beserta seluruh objek di dalamnya.

Peringatan

Jika nilai parameter prefix pada contoh kode berikut adalah string kosong atau NULL, semua objek dalam bucket akan dihapus. Berhati-hatilah saat menggunakan parameter ini.

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

const client = new OSS({
  // Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur Region ke oss-cn-hangzhou.
  region: 'oss-cn-hangzhou',
  // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode 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,
  authorizationV4: true,
  // Tentukan nama bucket.
  bucket: 'examplebucket',
});

// Tangani permintaan yang gagal untuk mencegah promise.all gagal, dan kembalikan alasan kegagalan beserta nama file yang gagal.
async function handleDel(name) {
  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);
}
// Untuk menghapus semua objek yang memiliki awalan 'src', atur prefix ke 'src'. Ini akan menghapus file seperti 'src_file.txt', folder 'src', dan semua file di dalam folder 'src'.
deletePrefix('src');
// Untuk menghapus hanya folder 'src' dan semua file di dalamnya, atur prefix ke 'src/'.
// deletePrefix('src/');

Referensi