使用 Java 列出 Blob 容器
通过代码列出 Azure 存储帐户中的容器时,可以指定多个选项来管理如何从 Azure 存储返回结果。 本文介绍如何使用适用于 Java 的 Azure 存储客户端库列出容器。
先决条件
- 本文假设已经设置了项目来使用适用于 Java 的 Azure Blob 存储客户端库。 要了解有关设置项目的信息,包括包安装、添加
import
指令和创建授权客户端对象,请参阅开始使用 Azure 存储和 Java。 - 授权机制必须具有列出 blob 容器的权限。 要了解详细信息,请参阅以下 REST API 操作的授权指南:
关于容器列出选项
通过代码列出容器时,可以指定选项来管理如何从 Azure 存储返回结果。 可以指定要在每个结果集中返回的结果数,然后检索后续结果集。 还可以按前缀筛选结果,并将容器元数据与结果一起返回。 后续部分将介绍这些选项。
若要列出存储帐户中的容器,请调用以下方法:
此方法返回可迭代的 BlobContainerItem 类型。 容器按名称的字典顺序排序。
管理要返回的结果数
默认情况下,列出操作每次最多返回 5000 个结果。 若要返回更小的结果集,请为要返回的结果页的大小提供非零值。 可以使用以下方法设置此值:
本文演示的示例说明了如何在页面中返回结果。 要详细了解分页概念,请参阅使用适用于 Java 的 Azure SDK 进行分页。
使用前缀筛选结果
若要筛选容器列表,请为 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 操作
Azure SDK for Java 包含基于 Azure REST API 而生成的库,允许你通过熟悉的 Java 范例与 REST API 操作进行交互。 用于列出容器的客户端库方法使用以下 REST API 操作:
- 列出容器 (REST API)