使用 Java 刪除和還原 Blob 容器
本文說明如何使用適用於 Java 的 Azure 儲存體用戶端程式庫來刪除容器。 如果您已啟用容器虛刪除,則可以還原已刪除的容器。
必要條件
- Azure 訂用帳戶 - 建立免費帳戶
- Azure 儲存體帳戶 - 建立儲存體帳戶
- JAVA 開發套件 (JDK) 第 8 版或更新版本 (建議使用第 17 版以獲得最佳體驗)
- 在此範例中,Apache Maven 用於專案管理
設定您的環境
如果沒有現有的專案,本章節會說明如何設定專案以使用適用於 JAVA 的 Azure Blob 儲存體用戶端程式庫。 如需詳細資訊,請參閱開始使用 Azure Blob 儲存體和 JAVA (部分機器翻譯)。
若要使用本文中的程式碼範例,請遵循下列步驟來設定您的專案。
注意
本文使用 Maven 建置工具來建置和執行範例程式碼。 Gradle 等其他建置工具也能與適用於 Java 的 Azure SDK 搭配運作。
安裝套件
在文字編輯器中開啟 pom.xml
檔案。 包含 BOM 檔案或包含直接相依性以安裝套件。
新增 import 陳述式
加入下列 import
陳述式:
import com.azure.storage.blob.*;
import com.azure.storage.blob.models.*;
授權
授權機制必須具有刪除或還原容器的必要權限。 如需使用 Microsoft Entra ID 授權 (建議使用),您需要 Azure RBAC 內建角色儲存體 Blob 資料參與者或更高權限。 若要深入了解,請參閱刪除容器 (REST API) 和還原容器 (REST API) 的授權指引。
建立用戶端物件
若要將應用程式連線至 Blob 儲存體,請建立 BlobServiceClient類別的執行個體。
下列範例會使用 BlobServiceClientBuilder,使用 DefaultAzureCredential
建置 BlobServiceClient
物件,並視需要示範如何建立容器和 Blob 用戶端:
// 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>");
若要深入了解如何建立及管理用戶端物件,請參閱建立和管理與資料資源互動的用戶端端物件 (部分機器翻譯)。
刪除容器
若要在 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 儲存體用戶端程式庫刪除容器,請參閱下列資源。
程式碼範例
- 檢視本文中的程式碼範例 (GitHub) (英文)
REST API 操作
適用於 Java 的 Azure SDK 包含建置在 Azure REST API 上的程式庫,可讓您透過熟悉的 Java 範例與 REST API 作業進行互動。 用來刪除或還原容器的用戶端程式庫方法會使用下列 REST API 作業:
用戶端程式庫資源
- 用戶端程式庫參考文件
- 用戶端程式庫原始程式碼
- 套件 (Maven) \(英文\)
另請參閱
相關內容
- 本文是適用於 JAVA 的 Blob 儲存體開發人員指南的一部分。 若要深入了解,請參閱位於建置 JAVA 應用程式 (部分機器翻譯) 的開發人員指南文章完整清單。