Share via


使用 Java 刪除和還原 Blob 容器

本文說明如何使用適用於 Java 的 Azure 儲存體用戶端程式庫來刪除容器。 如果您已啟用容器虛刪除,則可以還原已刪除的容器。

必要條件

  • 本文會假設您已有專案設定好要使用適用於 Java 的 Azure Blob 儲存體用戶端程式庫。 若要了解如何設定專案,包括套件安裝、新增 import 指示詞以及建立授權的用戶端物件,請參閱開始使用 Azure 儲存體和 Java
  • 授權機制必須具有刪除 Blob 容器的權限,或還原虛刪除容器的權限。 若要深入了解,請參閱下列 REST API 作業的授權指導:

刪除容器

若要在 Java 中刪除容器,請使用 BlobServiceClient 類別中的下列方法之一:

您也可以使用 BlobContainerClient 類別中的下列方法之一來刪除容器:

當您刪除容器後,至少 30 秒內無法建立具有相同名稱的容器。 嘗試建立具有相同名稱的容器將會失敗,並出現 HTTP 錯誤碼 409 (Conflict)。 對容器或其包含的 Blob 進行的任何其他作業都會失敗,並出現 HTTP 錯誤碼 404 (Not Found)

下列範例使用 BlobServiceClient 物件來刪除指定容器:

public void deleteContainer(BlobServiceClient blobServiceClient, String containerName) {
    // Delete the container using the service client
    blobServiceClient.deleteBlobContainer(containerName);
}

下列範例顯示如何刪除以指定前置詞開頭的所有容器:

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();
    }
}

還原已刪除的容器

針對儲存體帳戶啟用容器虛刪除時,可以在指定的保留期間內復原已刪除的容器及其內容。 若要深入了解容器虛刪除,請參閱啟用及管理容器虛刪除。 透過呼叫 BlobServiceClient 類別的下列方法,可以還原已虛刪除的容器:

下列範例會尋找已刪除的容器、取得已刪除容器的版本,然後將版本傳遞至 undeleteBlobContainer 方法來還原容器。

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());
    }
}

資源

若要深入了解如何使用適用於 Java 的 Azure Blob 儲存體用戶端程式庫刪除容器,請參閱下列資源。

REST API 操作

適用於 Java 的 Azure SDK 包含建置在 Azure REST API 上的程式庫,可讓您透過熟悉的 Java 範例與 REST API 作業進行互動。 用來刪除或還原容器的用戶端程式庫方法會使用下列 REST API 作業:

程式碼範例

用戶端程式庫資源

另請參閱