Ta bort och återställa en blobcontainer med Java
Den här artikeln visar hur du tar bort containrar med Azure Storage-klientbiblioteket för Java. Om du har aktiverat mjuk borttagning av containrar kan du återställa borttagna containrar.
Förutsättningar
- Azure-prenumeration – skapa en kostnadsfritt
- Azure Storage-konto – skapa ett lagringskonto
- Java Development Kit (JDK) version 8 eller senare (vi rekommenderar version 17 för bästa möjliga upplevelse)
- Apache Maven används för projekthantering i det här exemplet
Konfigurera din miljö
Om du inte har ett befintligt projekt visar det här avsnittet hur du konfigurerar ett projekt för att arbeta med Azure Blob Storage-klientbiblioteket för Java. Mer information finns i Komma igång med Azure Blob Storage och Java.
Följ de här stegen för att konfigurera projektet om du vill arbeta med kodexemplen i den här artikeln.
Kommentar
Den här artikeln använder verktyget Maven-kompilering för att skapa och köra exempelkoden. Andra byggverktyg, till exempel Gradle, fungerar också med Azure SDK för Java.
Installera paket
pom.xml
Öppna filen i textredigeraren. Installera paketen genom att inkludera BOM-filen eller inkludera ett direkt beroende.
Lägga till importinstruktioner
Lägg till följande import
-uttryck:
import com.azure.storage.blob.*;
import com.azure.storage.blob.models.*;
Auktorisering
Auktoriseringsmekanismen måste ha de behörigheter som krävs för att ta bort eller återställa en container. För auktorisering med Microsoft Entra-ID (rekommenderas) behöver du den inbyggda rollen Storage Blob Data Contributor eller senare. Mer information finns i auktoriseringsvägledningen för Ta bort container (REST API) och Återställningscontainer (REST API).
Skapa ett klientobjekt
Om du vill ansluta en app till Blob Storage skapar du en instans av BlobServiceClient.
I följande exempel används BlobServiceClientBuilder för att skapa ett BlobServiceClient
objekt med , DefaultAzureCredential
och visar hur du skapar container- och blobklienter om det behövs:
// 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>");
Mer information om hur du skapar och hanterar klientobjekt finns i Skapa och hantera klientobjekt som interagerar med dataresurser.
Ta bort en container
Om du vill ta bort en container i Java använder du någon av följande metoder från BlobServiceClient
klassen:
Du kan också ta bort en container med någon av följande metoder från BlobContainerClient
klassen:
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:
public void deleteContainer(BlobServiceClient blobServiceClient, String containerName) {
// Delete the container using the service client
blobServiceClient.deleteBlobContainer(containerName);
}
I följande exempel visas hur du tar bort alla containrar som börjar med ett angivet prefix:
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();
}
}
Återställa en borttagen container
När mjuk borttagning av containrar är aktiverat för ett lagringskonto kan en borttagen container och dess innehåll återställas inom en angiven kvarhållningsperiod. Mer information om mjuk borttagning av containrar finns i Aktivera och hantera mjuk borttagning för containrar. Du kan återställa en mjuk borttagen container genom att anropa följande metod för BlobServiceClient
klassen:
I följande exempel hittar du en borttagen container, hämtar versionen av den borttagna containern och skickar sedan versionen till undeleteBlobContainer
metoden för att återställa containern.
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());
}
}
Resurser
Mer information om hur du tar bort en container med hjälp av Azure Blob Storage-klientbiblioteket för Java finns i följande resurser.
Kodexempel
REST API-åtgärder
Azure SDK för Java innehåller bibliotek som bygger på Azure REST API, så att du kan interagera med REST API-åtgärder via välbekanta Java-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 Java. Mer information finns i den fullständiga listan över utvecklarguideartiklar i Skapa din Java-app.