共用方式為


使用 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 作業:

程式碼範例

用戶端程式庫資源

另請參閱