Een blobcontainer verwijderen en herstellen met TypeScript
In dit artikel wordt beschreven hoe u containers verwijdert met de Azure Storage-clientbibliotheek voor JavaScript. Als u voorlopig verwijderen van containers hebt ingeschakeld, kunt u verwijderde containers herstellen.
Vereisten
- In de voorbeelden in dit artikel wordt ervan uitgegaan dat u al een project hebt ingesteld voor gebruik met de Azure Blob Storage-clientbibliotheek voor JavaScript. Zie Aan de slag met Azure Blob Storage en TypeScript voor meer informatie over het instellen van uw project, inclusief pakketinstallatie, het importeren van modules en het maken van een geautoriseerd clientobject voor gebruik met gegevensbronnen.
- Het autorisatiemechanisme moet machtigingen hebben om een blobcontainer te verwijderen of om een voorlopig verwijderde container te herstellen. Zie de autorisatierichtlijnen voor de volgende REST API-bewerkingen voor meer informatie:
Een container verwijderen
Als u een container in TypeScript wilt verwijderen, maakt u een BlobServiceClient of ContainerClient en gebruikt u een van de volgende methoden:
- BlobServiceClient.deleteContainer
- ContainerClient.Verwijderen
- ContainerClient.deleteIfExists
Nadat u een container hebt verwijderd, kunt u gedurende ten minste 30 seconden geen container met dezelfde naam maken. Als u probeert een container met dezelfde naam te maken, mislukt de HTTP-foutcode 409 (Conflict). Alle andere bewerkingen in de container of de blobs die deze bevat, mislukken met HTTP-foutcode 404 (niet gevonden).
Container verwijderen met BlobServiceClient
In het volgende voorbeeld wordt de opgegeven container verwijderd. Gebruik de BlobServiceClient om een container te verwijderen:
// delete container immediately on blobServiceClient
async function deleteContainerImmediately(
blobServiceClient: BlobServiceClient,
containerName: string
): Promise<ContainerDeleteResponse> {
return await blobServiceClient.deleteContainer(containerName);
}
Container verwijderen met ContainerClient
In het volgende voorbeeld ziet u hoe u alle containers verwijdert waarvan de naam begint met een opgegeven voorvoegsel met behulp van een ContainerClient.
async function deleteContainersWithPrefix(
blobServiceClient: BlobServiceClient,
prefix: string
): Promise<void> {
const containerOptions: ServiceListContainersOptions = {
// only delete containers not deleted
includeDeleted: false,
includeMetadata: false,
includeSystem: true,
prefix
};
for await (const containerItem of blobServiceClient.listContainers(
containerOptions
)) {
try {
const containerClient: ContainerClient =
blobServiceClient.getContainerClient(containerItem.name);
const containerDeleteMethodOptions: ContainerDeleteMethodOptions = {};
await containerClient.delete(containerDeleteMethodOptions);
console.log(`deleted ${containerItem.name} container - success`);
} catch (err: unknown) {
if (err instanceof Error) {
console.log(
`deleted ${containerItem.name} container - failed - ${err.message}`
);
}
}
}
}
Een verwijderde container herstellen
Wanneer voorlopig verwijderen van containers is ingeschakeld voor een opslagaccount, kunnen een container en de inhoud ervan worden hersteld nadat deze is verwijderd, binnen een retentieperiode die u opgeeft. U kunt een voorlopig verwijderde container herstellen met behulp van een BlobServiceClient-object :
- BlobServiceClient.undeleteContainer ongedaan maken
In het volgende voorbeeld wordt een verwijderde container gevonden, de versie-id van die verwijderde container ophaalt en die id vervolgens doorgegeven aan de methode undeleteContainer om de container te herstellen.
// Undelete specific container - last version
async function undeleteContainer(
blobServiceClient: BlobServiceClient,
containerName: string
): Promise<void> {
// version to undelete
let containerVersion: string | undefined;
const containerOptions: ServiceListContainersOptions = {
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 as string;
}
}
if (containerVersion !== undefined) {
const serviceUndeleteContainerOptions: ServiceUndeleteContainerOptions = {};
const {
containerClient,
containerUndeleteResponse
}: {
containerClient: ContainerClient;
containerUndeleteResponse: ContainerUndeleteResponse;
} = await blobServiceClient.undeleteContainer(
containerName,
containerVersion,
// optional/new container name - if unused, original container name is used
//newContainerName
serviceUndeleteContainerOptions
);
// Check delete
if (containerUndeleteResponse.errorCode)
throw Error(containerUndeleteResponse.errorCode);
// undelete was successful
console.log(`${containerName} is undeleted`);
// do something with containerClient
// ...
// containerClient.listBlobsFlat({ includeMetadata: true,
// includeSnapshots: false,
// includeTags: true,
// includeVersions: false,
// prefix: ''});
}
}
Resources
Zie de volgende resources voor meer informatie over het verwijderen van een container met behulp van de Azure Blob Storage-clientbibliotheek voor JavaScript.
REST API-bewerkingen
De Azure SDK voor JavaScript bevat bibliotheken die zijn gebaseerd op de Azure REST API, zodat u kunt communiceren met REST API-bewerkingen via bekende JavaScript-paradigma's. De clientbibliotheekmethoden voor het verwijderen of herstellen van een container maken gebruik van de volgende REST API-bewerkingen:
Codevoorbeelden
Clientbibliotheekbronnen
Zie ook
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor