Menghapus dan memulihkan kontainer blob dengan JavaScript
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 di JavaScript, buat BlobServiceClient atau ContainerClient lalu gunakan salah satu metode berikut:
- BlobServiceClient.deleteContainer
- ContainerClient.delete
- ContainerClient.deleteIfExists
Setelah menghapus kontainer, Anda tidak dapat membuat wadah dengan nama yang sama setidaknya selama 30 detik. Mencoba membuat kontainer dengan nama yang sama akan gagal dengan kode galat HTTP 409 (Konflik). Operasi lain pada kontainer atau blob yang dikandungnya akan gagal dengan kode galat HTTP 404 (Tidak Ditemukan).
Menghapus kontainer dengan BlobServiceClient
Contoh berikut menghapus kontainer khusus. Gunakan BlobServiceClient untuk menghapus kontainer:
// delete container immediately on blobServiceClient
async function deleteContainerImmediately(blobServiceClient, containerName) {
const response = await blobServiceClient.deleteContainer(containerName);
if (!response.errorCode) {
console.log(`deleted ${containerItem.name} container`);
}
}
Menghapus kontainer dengan ContainerClient
Contoh berikut menunjukkan cara menghapus semua kontainer yang namanya dimulai dengan awalan tertentu menggunakan ContainerClient.
async function deleteContainersWithPrefix(blobServiceClient, blobNamePrefix){
const containerOptions = {
includeDeleted: false,
includeMetadata: false,
includeSystem: true,
prefix: blobNamePrefix
}
for await (const containerItem of blobServiceClient.listContainers(containerOptions)) {
const containerClient = blobServiceClient.getContainerClient(containerItem.name);
const response = await containerClient.delete();
if(!response.errorCode){
console.log(`deleted ${containerItem.name} container`);
}
}
}
Memulihkan kontainer yang dihapus
Saat penghapusan sementara kontainer diaktifkan untuk akun penyimpanan, kontainer dan kontennya dapat dipulihkan setelah dihapus, dalam periode penyimpanan yang Anda tentukan. Anda dapat memulihkan kontainer yang dihapus sementara menggunakan objek BlobServiceClient :
- BlobServiceClient.undeleteContainer
Contoh berikut menemukan kontainer yang dihapus, mendapatkan ID versi kontainer yang dihapus, lalu meneruskan ID tersebut ke metode undeleteContainer untuk memulihkan kontainer.
// Undelete specific container - last version
async function undeleteContainer(blobServiceClient, containerName) {
// version to undelete
let containerVersion;
const containerOptions = {
includeDeleted: true,
prefix: containerName
}
// container listing returns version (timestamp) in the ContainerItem
for await (const containerItem of blobServiceClient.listContainers(containerOptions)) {
// if there are multiple deleted versions of the same container,
// the versions are in asc time order
// the last version is the most recent
if (containerItem.name === containerName) {
containerVersion = containerItem.version;
}
}
const containerClient = await blobServiceClient.undeleteContainer(
containerName,
containerVersion,
// optional/new container name - if unused, original container name is used
//newContainerName
);
// undelete was successful
console.log(`${containerName} is undeleted`);
// do something with containerClient
// ...
}
Sumber
Untuk mempelajari selengkapnya tentang menghapus kontainer menggunakan pustaka klien Azure Blob Storage untuk JavaScript, lihat sumber daya berikut ini.
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:
- Hapus Kontainer (REST API)
- Pulihkan Kontainer (REST API)