Een blobcontainer verwijderen en herstellen met Java
In dit artikel wordt beschreven hoe u containers verwijdert met de Azure Storage-clientbibliotheek voor Java. Als u voorlopig verwijderen van containers hebt ingeschakeld, kunt u verwijderde containers herstellen.
Vereisten
- Azure-abonnement: u kunt een gratis abonnement nemen
- Azure Storage-account: maak een opslagaccount
- Java Development Kit (JDK) versie 8 of hoger (we raden versie 17 aan voor de beste ervaring)
- Apache Maven wordt in dit voorbeeld gebruikt voor projectbeheer
Uw omgeving instellen
Als u geen bestaand project hebt, ziet u in deze sectie hoe u een project instelt voor gebruik met de Azure Blob Storage-clientbibliotheek voor Java. Zie Aan de slag met Azure Blob Storage en Java voor meer informatie.
Als u wilt werken met de codevoorbeelden in dit artikel, volgt u deze stappen om uw project in te stellen.
Notitie
In dit artikel wordt het Maven-buildhulpprogramma gebruikt om de voorbeeldcode te bouwen en uit te voeren. Andere buildhulpprogramma's, zoals Gradle, werken ook met de Azure SDK voor Java.
Pakketten installeren
Open het pom.xml
bestand in de teksteditor. Installeer de pakketten door het BOM-bestand op te slaan of door een directe afhankelijkheid op te slaan.
Importinstructies toevoegen
Voeg de volgende import
instructies toe:
import com.azure.storage.blob.*;
import com.azure.storage.blob.models.*;
Autorisatie
Het autorisatiemechanisme moet over de benodigde machtigingen beschikken om een container te verwijderen of te herstellen. Voor autorisatie met Microsoft Entra ID (aanbevolen) hebt u ingebouwde Azure RBAC-rol Opslagblobgegevensbijdrager of hoger nodig. Zie de autorisatierichtlijnen voor Delete Container (REST API) en Restore Container (REST API) voor meer informatie.
Een clientobject maken
Als u een app wilt verbinden met Blob Storage, maakt u een exemplaar van BlobServiceClient.
In het volgende voorbeeld wordt BlobServiceClientBuilder gebruikt om een BlobServiceClient
object te bouwen met behulp vanDefaultAzureCredential
, en ziet u hoe u indien nodig container- en blobclients maakt:
// Azure SDK client builders accept the credential as a parameter
// TODO: Replace <storage-account-name> with your actual storage account name
BlobServiceClient blobServiceClient = new BlobServiceClientBuilder()
.endpoint("https://<storage-account-name>.blob.core.windows.net/")
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();
// If needed, you can create a BlobContainerClient object from the BlobServiceClient
BlobContainerClient containerClient = blobServiceClient
.getBlobContainerClient("<container-name>");
// If needed, you can create a BlobClient object from the BlobContainerClient
BlobClient blobClient = containerClient
.getBlobClient("<blob-name>");
Zie Clientobjecten maken en beheren die interactie hebben met gegevensbronnen voor meer informatie over het maken en beheren van clientobjecten.
Een container verwijderen
Als u een container in Java wilt verwijderen, gebruikt u een van de volgende methoden uit de BlobServiceClient
klasse:
U kunt ook een container verwijderen met behulp van een van de volgende methoden uit de BlobContainerClient
klasse:
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 (Not Found)
.
In het volgende voorbeeld wordt een BlobServiceClient
object gebruikt om de opgegeven container te verwijderen:
public void deleteContainer(BlobServiceClient blobServiceClient, String containerName) {
// Delete the container using the service client
blobServiceClient.deleteBlobContainer(containerName);
}
In het volgende voorbeeld ziet u hoe u alle containers verwijdert die beginnen met een opgegeven voorvoegsel:
public void deleteContainersWithPrefix(BlobServiceClient blobServiceClient) {
ListBlobContainersOptions options = new ListBlobContainersOptions()
.setPrefix("container-");
// Delete the container with the specified prefix using the service client
for (BlobContainerItem containerItem : blobServiceClient.listBlobContainers(options, null)) {
BlobContainerClient containerClient = blobServiceClient.getBlobContainerClient(containerItem.getName());
containerClient.delete();
}
}
Een verwijderde container herstellen
Wanneer voorlopig verwijderen van containers is ingeschakeld voor een opslagaccount, kunnen een verwijderde container en de inhoud ervan worden hersteld binnen een opgegeven bewaarperiode. Zie Voorlopig verwijderen voor containers inschakelen en beheren voor meer informatie over voorlopig verwijderen van containers. U kunt een voorlopig verwijderde container herstellen door de volgende methode van de BlobServiceClient
klasse aan te roepen:
In het volgende voorbeeld wordt een verwijderde container gevonden, de versie van die verwijderde container ophaalt en vervolgens de versie doorgegeven aan de undeleteBlobContainer
methode om de container te herstellen.
public void restoreContainer(BlobServiceClient blobServiceClient) {
ListBlobContainersOptions options = new ListBlobContainersOptions();
options.getDetails().setRetrieveDeleted(true);
// Delete the container with the specified prefix using the service client
for (BlobContainerItem deletedContainerItem : blobServiceClient.listBlobContainers(options, null)) {
BlobContainerClient containerClient = blobServiceClient
.undeleteBlobContainer(deletedContainerItem.getName(), deletedContainerItem.getVersion());
}
}
Resources
Zie de volgende resources voor meer informatie over het verwijderen van een container met behulp van de Azure Blob Storage-clientbibliotheek voor Java.
Codevoorbeelden
REST API-bewerkingen
De Azure SDK voor Java bevat bibliotheken die zijn gebaseerd op de Azure REST API, zodat u kunt communiceren met REST API-bewerkingen via bekende Java-paradigma's. De clientbibliotheekmethoden voor het verwijderen of herstellen van een container maken gebruik van de volgende REST API-bewerkingen:
Clientbibliotheekbronnen
Zie ook
Gerelateerde inhoud
- Dit artikel maakt deel uit van de ontwikkelaarshandleiding voor Blob Storage voor Java. Zie de volledige lijst met artikelen over ontwikkelaarshandleidingen in Uw Java-app bouwen voor meer informatie.