Ta bort och återställa en blobcontainer med JavaScript eller TypeScript
Den här artikeln visar hur du tar bort containrar med Azure Storage-klientbiblioteket för JavaScript. Om du har aktiverat mjuk borttagning av containrar kan du återställa borttagna containrar.
Förutsättningar
- Exemplen i den här artikeln förutsätter att du redan har ett projekt konfigurerat för att fungera med Azure Blob Storage-klientbiblioteket för JavaScript. Mer information om hur du konfigurerar projektet, inklusive paketinstallation, import av moduler och skapande av ett auktoriserat klientobjekt för att arbeta med dataresurser finns i Kom igång med Azure Blob Storage och JavaScript.
- Auktoriseringsmekanismen måste ha behörighet att ta bort en blobcontainer eller återställa en mjuk borttagen container. Mer information finns i auktoriseringsvägledningen för följande REST API-åtgärder:
Ta bort en container
Om du vill ta bort en container använder du följande metod från klassen BlobServiceClient :
Du kan också ta bort en container med hjälp av följande metod från klassen ContainerClient :
När du har tagit bort en container kan du inte skapa en container med samma namn på minst 30 sekunder. Försök att skapa en container med samma namn misslyckas med HTTP-felkoden 409 (Conflict)
. Andra åtgärder i containern eller blobarna som den innehåller misslyckas med HTTP-felkoden 404 (Not Found)
.
I följande exempel används ett BlobServiceClient
objekt för att ta bort den angivna containern:
async function deleteContainer(blobServiceClient, containerName) {
return await blobServiceClient.deleteContainer(containerName);
}
I följande exempel visas hur du tar bort alla containrar som börjar med ett angivet prefix:
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}`);
}
}
}
Återställa en borttagen container
När mjuk borttagning av containrar är aktiverat för ett lagringskonto kan en container och dess innehåll återställas efter att den har tagits bort inom en kvarhållningsperiod som du anger. Du kan återställa en mjuk borttagen container med hjälp av ett BlobServiceClient-objekt :
I följande exempel hittar du en borttagen undeleteContainer
container, hämtar versions-ID:t för den borttagna containern och skickar sedan det ID:t till metoden för att återställa containern.
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,
);
}
Resurser
Mer information om hur du tar bort en container med hjälp av Azure Blob Storage-klientbiblioteket för JavaScript finns i följande resurser.
Kodexempel
- Visa JavaScript - och TypeScript-kodexempel från den här artikeln (GitHub)
REST API-åtgärder
Azure SDK för JavaScript innehåller bibliotek som bygger på Azure REST API, så att du kan interagera med REST API-åtgärder via välbekanta JavaScript-paradigm. Klientbiblioteksmetoderna för att ta bort eller återställa en container använder följande REST API-åtgärder:
- Ta bort container (REST API)
- Återställningscontainer (REST API)
Klientbiblioteksresurser
Se även
Relaterat innehåll
- Den här artikeln är en del av utvecklarguiden för Blob Storage för JavaScript/Typescript. Mer information finns i den fullständiga listan över utvecklarguideartiklar i Skapa din JavaScript/Typescript-app.