Bagikan melalui


Menghapus dan memulihkan kontainer blob dengan JavaScript atau TypeScript

Artikel ini menunjukkan cara menghapus kontainer dengan pustaka klien Azure Storage untuk JavaScript. Jika Anda telah mengaktifkan penghapusan sementara kontainer, Anda dapat memulihkan kontainer yang dihapus.

Prasyarat

  • Contoh dalam artikel ini mengasumsikan Anda sudah menyiapkan proyek untuk bekerja dengan pustaka klien Azure Blob Storage untuk JavaScript. Untuk mempelajari tentang menyiapkan proyek Anda, termasuk penginstalan paket, mengimpor modul, dan membuat objek klien resmi untuk bekerja dengan sumber daya data, lihat Mulai menggunakan Azure Blob Storage dan JavaScript.
  • Mekanisme otorisasi harus memiliki izin untuk menghapus kontainer blob, atau untuk memulihkan kontainer yang dihapus sementara. Untuk mempelajari lebih lanjut, lihat panduan otorisasi untuk operasi REST API berikut:

Menghapus kontainer

Untuk menghapus kontainer, gunakan metode berikut dari kelas BlobServiceClient :

Anda juga dapat menghapus kontainer menggunakan metode berikut dari kelas ContainerClient :

Setelah menghapus kontainer, Anda tidak dapat membuat wadah dengan nama yang sama setidaknya selama 30 detik. Mencoba membuat kontainer dengan nama yang sama gagal dengan kode 409 (Conflict)kesalahan HTTP . Operasi lain pada kontainer atau blob yang dikandungnya gagal dengan kode 404 (Not Found)kesalahan HTTP .

Contoh berikut menggunakan BlobServiceClient objek untuk menghapus kontainer yang ditentukan:

async function deleteContainer(blobServiceClient, containerName) {
  
  return await blobServiceClient.deleteContainer(containerName);
}

Contoh berikut menunjukkan cara menghapus semua kontainer yang dimulai dengan awalan tertentu:

async function deleteContainersWithPrefix(blobServiceClient, prefix) {

  const containerOptions = {
    includeDeleted: false,
    includeMetadata: false,
    includeSystem: true,
    prefix
  }

  for await (const containerItem of blobServiceClient.listContainers(containerOptions)) {

    try{
      const containerClient = blobServiceClient.getContainerClient(containerItem.name);

      await containerClient.delete();
  
      console.log(`Deleted ${containerItem.name} container - success`);
    }catch(ex){
      console.log(`Deleted ${containerItem.name} container - failed - ${ex.message}`);
    }
  }
}

Memulihkan kontainer yang dihapus

Saat penghapusan sementara kontainer diaktifkan untuk akun penyimpanan, kontainer dan kontennya dapat dipulihkan setelah dihapus, dalam periode retensi yang Anda tentukan. Anda dapat memulihkan kontainer yang dihapus sementara menggunakan objek BlobServiceClient :

Contoh berikut menemukan kontainer yang dihapus, mendapatkan ID versi kontainer yang dihapus, lalu meneruskan ID tersebut undeleteContainer ke dalam metode untuk memulihkan kontainer.

async function undeleteContainer(blobServiceClient, containerName) {
  
  // Version to restore
  let containerVersion;

  const containerOptions = {
    includeDeleted: true,
    prefix: containerName
  }

  // Find the deleted container and restore it
  for await (const containerItem of blobServiceClient.listContainers(containerOptions)) {
    if (containerItem.name === containerName) {
      containerVersion = containerItem.version;
    }
  }

  const containerClient = await blobServiceClient.undeleteContainer(
    containerName,
    containerVersion,
  );
}

Sumber

Untuk mempelajari selengkapnya tentang menghapus kontainer menggunakan pustaka klien Azure Blob Storage untuk JavaScript, lihat sumber daya berikut ini.

Sampel kode

Operasi REST API

Azure SDK untuk JavaScript berisi pustaka yang dibangun di atas Azure REST API, memungkinkan Anda berinteraksi dengan operasi REST API melalui paradigma JavaScript yang sudah dikenal. Metode pustaka klien untuk menghapus atau memulihkan kontainer menggunakan operasi REST API berikut:

Sumber daya pustaka klien

Lihat juga

  • Artikel ini adalah bagian dari panduan pengembang Blob Storage untuk JavaScript/Typescript. Untuk mempelajari lebih lanjut, lihat daftar lengkap artikel panduan pengembang di Membangun aplikasi JavaScript/Typescript Anda.