全部产品
Search
文档中心

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

更新时间:Nov 30, 2025

Topik ini menjelaskan cara menghapus satu file, beberapa file, atau file dengan awalan tertentu dari bucket yang telah diaktifkan fitur Pengendalian versi.

Perilaku penghapusan pada bucket yang diaktifkan Pengendalian versi

Perilaku penghapusan pada bucket yang diaktifkan Pengendalian versi adalah sebagai berikut:

  • Hapus tanpa menentukan version ID (penghapusan temporary):

    Jika Anda menghapus objek tanpa menentukan version ID, OSS tidak akan menghapus objek tersebut secara permanen. Sebagai gantinya, OSS menambahkan penanda hapus, yang menjadi versi terkini dari objek tersebut. Jika Anda mencoba mengambil objek tersebut, OSS akan menemukan penanda hapus dan mengembalikan error 404 Not Found. Tanggapan tersebut mencakup header:x-oss-delete-marker = true dan version ID dari penanda hapus baru dalam x-oss-version-id.

    Nilai true untuk x-oss-delete-marker menunjukkan bahwa versi yang sesuai dengan x-oss-version-id yang dikembalikan merupakan penanda hapus.

  • Hapus dengan menentukan version ID (penghapusan permanen):

    Jika Anda menentukan `versionId` dalam operasi penghapusan, OSS akan menghapus secara permanen versi objek dengan versionId yang ditentukan dalam parameter params. Untuk menghapus versi objek yang `versionId`-nya berupa string "null", tambahkan params['versionId'] = "null" ke parameter params. Dalam kasus ini, OSS memperlakukan string "null" sebagai `versionId` dan menghapus versi objek yang sesuai.

Hapus satu file

Contoh berikut menunjukkan cara menghapus satu objek secara permanen atau temporary.

  • Penghapusan permanen

    Kode berikut menunjukkan cara menghapus objek secara permanen dengan menentukan versionId-nya:

    const OSS = require("ali-oss");
    
    const client = new OSS({
      // Ganti yourregion dengan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur Region ke oss-cn-hangzhou.
      region: 'yourregion',
      // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode 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,
      authorizationV4: true,
      // Ganti yourbucketname dengan nama bucket.
      bucket: 'yourbucketname'
    });
    
    // Tentukan versionId objek.
    const versionId = "versionId";
    // Tentukan objek.
    const objectName = "exampleobject.txt";
    async function deleteVersionObject() {
      const result = await client.delete(objectName, {
        versionId,
      });
      console.log(result);
    }
    
    deleteVersionObject();
  • Penghapusan temporary

    Kode berikut menunjukkan cara menghapus objek secara temporary tanpa menentukan versionId:

    const OSS = require('ali-oss');
    
    const client = new OSS({
      // Ganti yourregion dengan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur Region ke oss-cn-hangzhou.
      region: 'yourregion',
      // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode 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,
      authorizationV4: true,
      // Ganti yourbucketname dengan nama bucket.
      bucket: 'yourbucketname'
    });
    
    // Hapus objek secara temporary tanpa menentukan versionId. Operasi ini menambahkan penanda hapus ke objek.
    // Tentukan objek.
    const objectName = "exampleobject.txt";
    async function deleteObject() {
        const result = await client.delete(objectName);
        console.log(result);
      }
    
    deleteObject();

Hapus beberapa file

Contoh berikut menunjukkan cara menghapus beberapa objek secara permanen maupun temporary.

  • Hapus secara permanen

    Kode berikut memberikan contoh penghapusan permanen beberapa objek beserta penanda hapusnya dengan menentukan versionId masing-masing:

    const OSS = require('ali-oss');
    
    const client = new OSS({
      // Ganti yourregion dengan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur Region ke oss-cn-hangzhou.
      region: 'yourregion',
      // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode 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,
      authorizationV4: true,
      // Ganti yourbucketname dengan nama bucket.
      bucket: 'yourbucketname'
    });
    
    // Hapus beberapa objek atau penanda hapus dengan menentukan versionId masing-masing.
    const names = [
      { key: 'key1.js', versionId: 'versionId1' },
      { key: 'key2.js', versionId: 'versionId2' }
    ];
    
    async function deleteMulti() {
      const result = await client.deleteMulti(names);
      console.log(result);
    }
    deleteMulti();
  • Penghapusan temporary

    Kode berikut menunjukkan cara menghapus beberapa objek secara temporary tanpa menentukan versionId-nya. Versi objek yang dihapus secara temporary dapat dipulihkan.

    const OSS = require('ali-oss');
    
    const client = new OSS({
      // Ganti yourregion dengan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur Region ke oss-cn-hangzhou.
      region: 'yourregion',
      // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode 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,
      authorizationV4: true,
      // Ganti yourbucketname dengan nama bucket.
      bucket: 'yourbucketname'
    });
    
    const names = ['key1.js', 'key2.js'];
    
    async function deleteMulti() {
      // Hapus beberapa objek tanpa menentukan versionId.
      const result = await client.deleteMulti(names);
      console.log(result);
    }
    deleteMulti();

Hapus file dengan awalan tertentu

Kode berikut menunjukkan cara menghapus file dengan awalan tertentu:

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

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

// Tentukan awalan objek yang akan dihapus.
const prefix = "test";

async function deleteMutiPrefix() {
  // Dapatkan informasi versionId untuk objek dengan awalan yang ditentukan.
  const list = await client.getBucketVersions({
    prefix: prefix,
  });

  for (let i = 0; i < list.objects.length; i++) {
    const obj = list.objects[i];
    // Hapus objek dengan awalan yang ditentukan.
    const versionId = obj.versionId;
    await client.delete(obj.name, {
      versionId,
    });
  }
}

deleteMutiPrefix();

Referensi

  • Untuk informasi selengkapnya mengenai operasi API DeleteObject, lihat DeleteObject.

  • Untuk informasi selengkapnya mengenai operasi API DeleteMultipleObjects, lihat DeleteMultipleObjects.