Odstranění a obnovení kontejneru objektů blob pomocí Javy
Tento článek ukazuje, jak odstranit kontejnery pomocí klientské knihovny azure Storage pro Javu. Pokud jste povolili obnovitelné odstranění kontejneru, můžete odstraněné kontejnery obnovit.
Požadavky
- Předplatné Azure – vytvoření bezplatného předplatného
- Účet úložiště Azure – Vytvoření účtu úložiště
- Sada Java Development Kit (JDK) verze 8 nebo novější (pro zajištění co nejlepšího prostředí doporučujeme verzi 17)
- Apache Maven se používá pro řízení projektů v tomto příkladu.
Nastavení prostředí
Pokud nemáte existující projekt, v této části se dozvíte, jak nastavit projekt pro práci s klientskou knihovnou Azure Blob Storage pro Javu. Další informace najdete v tématu Začínáme se službou Azure Blob Storage a Javou.
Pokud chcete pracovat s příklady kódu v tomto článku, nastavte projekt pomocí následujícího postupu.
Poznámka:
Tento článek používá nástroj pro sestavení Maven k sestavení a spuštění ukázkového kódu. Další nástroje sestavení, jako je Gradle, také pracují se sadou Azure SDK pro Javu.
Instalace balíčků
Otevřete soubor v textovém pom.xml
editoru. Nainstalujte balíčky zahrnutím souboru kusovníku nebo zahrnutím přímé závislosti.
Přidání příkazů importu
Přidejte následující příkazy import
:
import com.azure.storage.blob.*;
import com.azure.storage.blob.models.*;
Autorizace
Autorizační mechanismus musí mít potřebná oprávnění k odstranění nebo obnovení kontejneru. K autorizaci pomocí Microsoft Entra ID (doporučeno) potřebujete předdefinovanou roli Přispěvatel dat objektů blob služby Azure RBAC nebo vyšší. Další informace najdete v pokynech k autorizaci k odstranění kontejneru (REST API) a obnovení kontejneru (REST API).
Vytvoření objektu klienta
Pokud chcete připojit aplikaci ke službě Blob Storage, vytvořte instanci BlobServiceClient.
Následující příklad používá BlobServiceClientBuilder k sestavení BlobServiceClient
objektu pomocí DefaultAzureCredential
a ukazuje, jak vytvořit kontejner a klienty objektů blob v případě potřeby:
// 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>");
Další informace o vytváření a správě klientských objektů najdete v tématu Vytváření a správa klientských objektů, které pracují s datovými prostředky.
Odstranění kontejneru
Pokud chcete odstranit kontejner v Javě, použijte jednu z následujících metod ze BlobServiceClient
třídy:
Kontejner můžete také odstranit pomocí jedné z následujících metod z BlobContainerClient
třídy:
Po odstranění kontejneru nemůžete vytvořit kontejner se stejným názvem alespoň po dobu 30 sekund. Pokus o vytvoření kontejneru se stejným názvem selže s kódem 409 (Conflict)
chyby HTTP . Jakékoli jiné operace v kontejneru nebo objektech blob, které obsahuje, selžou s kódem 404 (Not Found)
chyby HTTP .
Následující příklad používá BlobServiceClient
objekt k odstranění zadaného kontejneru:
public void deleteContainer(BlobServiceClient blobServiceClient, String containerName) {
// Delete the container using the service client
blobServiceClient.deleteBlobContainer(containerName);
}
Následující příklad ukazuje, jak odstranit všechny kontejnery, které začínají zadanou předponou:
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();
}
}
Obnovení odstraněného kontejneru
Pokud je pro účet úložiště povolené obnovitelné odstranění kontejneru, může se odstraněný kontejner a jeho obsah obnovit během zadané doby uchovávání. Další informace o obnovitelném odstranění kontejnerů najdete v tématu Povolení a správa obnovitelného odstranění kontejnerů. Obnovitelně odstraněný kontejner můžete obnovit voláním následující metody BlobServiceClient
třídy:
Následující příklad najde odstraněný kontejner, získá verzi tohoto odstraněného kontejneru a pak předá verzi do undeleteBlobContainer
metody pro obnovení kontejneru.
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());
}
}
Zdroje informací
Další informace o odstranění kontejneru pomocí klientské knihovny Azure Blob Storage pro Javu najdete v následujících zdrojích informací.
Ukázky kódu
Operace rozhraní REST API
Sada Azure SDK pro Javu obsahuje knihovny, které jsou postavené na rozhraní Azure REST API a umožňují interakci s operacemi rozhraní REST API prostřednictvím známých paradigmat Javy. Metody klientské knihovny pro odstranění nebo obnovení kontejneru používají následující operace rozhraní REST API:
- Odstranění kontejneru (REST API)
- Obnovení kontejneru (REST API)
Prostředky klientské knihovny
Viz také
Související obsah
- Tento článek je součástí příručky pro vývojáře služby Blob Storage pro Javu. Další informace najdete v úplném seznamu článků příručky pro vývojáře na webu Sestavení aplikace v Javě.