使用 Java 列出 Blob 容器
當您從程式碼列出 Azure 儲存體中的容器時,可以指定數個選項來管理從 Azure 儲存體傳回結果的方式。 本文說明如何使用適用於 Java 的 Azure 儲存體用戶端程式庫來列出容器。
必要條件
- 本文會假設您已有專案設定好要使用適用於 Java 的 Azure Blob 儲存體用戶端程式庫。 若要了解如何設定您的專案,包括套件安裝、新增
import
指示詞以及建立授權的用戶端物件,請參閱開始使用 Azure 儲存體和 Java。 - 授權機制必須具有列出 Blob 容器的權限。 若要深入了解,請參閱下列 REST API 作業的授權指引:
關於容器清單選項
從程式碼列出容器時,可以指定若干選項來管理從 Azure 儲存體傳回結果的方式。 您可指定要在每一組結果中傳回的結果數目,然後擷取後續集合。 您也可以按前置詞篩選結果,在結果中傳回容器中繼資料。 下列各節描述這些選項。
若要列出儲存體帳戶中的容器,請呼叫下列方法:
此方法會傳回可反覆執行的類型 BlobContainerItem。 容器會依名稱按字典順序排序。
管理傳回的結果數目
根據預設,清單作業一次最多會傳回 5000 個結果。 若要傳回一組較小的結果,請為要傳回的結果頁面大小提供非零的值。 您可以使用下列方法來設定此值:
本文中顯示的範例會說明如何在頁面中傳回結果。 若要深入了解分頁概念,請參閱使用 Azure SDK for Java 進行分頁。
使用前置詞篩選結果
若要篩選容器清單,請指定 prefix
參數的字串。 前置詞字串可包含一或多個字元。 Azure 儲存體接著只會傳回名稱開頭為該前置詞的容器。 您可以使用下列方法來設定此值:
包含容器中繼資料
若要在結果中包含容器中繼資料,請建立 BlobContainerListDetails
執行個體,並將 true
傳遞至下列方法:
然後將 BlobContainerListDetails
物件傳遞至下列方法:
包含已刪除的容器
若要在結果中包含虛刪除容器,請建立 BlobContainerListDetails
執行個體,並將 true
傳遞至下列方法:
然後將 BlobContainerListDetails
物件傳遞至下列方法:
程式碼範例
下列範例會列出容器,並依指定的前置詞篩選結果:
public void listContainers(BlobServiceClient blobServiceClient) {
// Set a prefix to filter results based on a specified character or string
ListBlobContainersOptions options = new ListBlobContainersOptions()
.setPrefix("container-");
System.out.println("List containers:");
for (BlobContainerItem blobContainerItem : blobServiceClient.listBlobContainers(options, null)) {
System.out.printf("Container name: %s%n", blobContainerItem.getName());
}
}
您也可以指定要傳回的結果頁面大小,以傳回較小的結果集:
public void listContainersWithPaging(BlobServiceClient blobServiceClient) {
// Set a prefix to filter results and specify a page limit
ListBlobContainersOptions options = new ListBlobContainersOptions()
.setMaxResultsPerPage(2) // Low number for demonstration purposes
.setPrefix("container-");
int i = 0;
Iterable<PagedResponse<BlobContainerItem>> blobContainerPages = blobServiceClient
.listBlobContainers(options, null).iterableByPage();
for (PagedResponse<BlobContainerItem> page : blobContainerPages) {
System.out.printf("Page %d%n", ++i);
page.getElements().forEach(container -> {
System.out.printf("Name: %s%n", container.getName());
});
}
}
資源
若要深入了解如何使用適用於 Java 的 Azure Blob 儲存體用戶端程式庫列出容器,請參閱下列資源。
REST API 操作
適用於 Java 的 Azure SDK 包含建置在 Azure REST API 上的程式庫,可讓您透過熟悉的 Java 範例與 REST API 作業進行互動。 用來列出容器的用戶端程式庫方法會使用下列 REST API 作業:
- 列出容器 (REST API)
程式碼範例
- 檢視本文中的程式碼範例 (GitHub) (英文)
用戶端程式庫資源
- 用戶端程式庫參考文件
- 用戶端程式庫原始程式碼
- 套件 (Maven) \(英文\)