使用 .NET 列出 Blob 容器

通过代码列出 Azure 存储帐户中的容器时,可以指定多个选项来管理如何从 Azure 存储返回结果。 本文介绍如何使用适用于 .NET 的 Azure 存储客户端库列出容器。

先决条件

  • 本文假设已经设置了项目来使用适用于 .NET 的 Azure Blob 存储客户端库。 要了解有关设置项目的信息,包括包安装、添加 using 指令和创建授权客户端对象,请参阅开始使用 Azure Blob 存储和 .NET
  • 授权机制必须具有列出 blob 容器的权限。 要了解详细信息,请参阅以下 REST API 操作的授权指南:

关于容器列出选项

通过代码列出容器时,可以指定选项来管理如何从 Azure 存储返回结果。 可以指定要在每个结果集中返回的结果数,然后检索后续结果集。 还可以按前缀筛选结果,并将容器元数据与结果一起返回。 后续部分将介绍这些选项。

若要列出存储帐户中的容器,请调用以下方法之一:

这些方法返回 BlobContainerItem 对象的列表。 容器按名称的字典顺序排序。

管理要返回的结果数

默认情况下,列表操作一次最多返回 5000 个结果,但你可以指定你所希望的每个列表操作返回的结果数。 本文演示的示例说明了如何在页面中返回结果。 要详细了解分页概念,请参阅使用适用于 .NET 的 Azure SDK 进行分页

使用前缀筛选结果

若要筛选容器列表,请为 prefix 参数指定一个字符串。 前缀字符串可以包含一个或多个字符。 然后,Azure 存储只返回其名称以该前缀开头的容器。

包含容器元数据

若要在结果中包含容器元数据,请为 BlobContainerTraits 枚举指定 Metadata 值。 Azure 存储包含返回的每个容器的元数据,因此你不需要单独提取容器元数据。

包含已删除的容器

若要在结果中包含软删除的容器,请为 BlobContainerStates 枚举指定 Deleted 值。

代码示例:列出容器

以下示例以异步方式列出存储帐户中以指定的前缀开头的容器。 该示例列出了以指定前缀开头的容器,并且每次对列表操作的调用均返回指定数量的结果。 然后,它使用延续令牌获取下一段结果。 该示例还会连同结果一起返回容器元数据。

async static Task ListContainers(BlobServiceClient blobServiceClient, 
                                string prefix, 
                                int? segmentSize)
{
    try
    {
        // Call the listing operation and enumerate the result segment.
        var resultSegment = 
            blobServiceClient.GetBlobContainersAsync(BlobContainerTraits.Metadata, prefix, default)
            .AsPages(default, segmentSize);

        await foreach (Azure.Page<BlobContainerItem> containerPage in resultSegment)
        {
            foreach (BlobContainerItem containerItem in containerPage.Values)
            {
                Console.WriteLine("Container name: {0}", containerItem.Name);
            }

            Console.WriteLine();
        }
    }
    catch (RequestFailedException e)
    {
        Console.WriteLine(e.Message);
        Console.ReadLine();
        throw;
    }
}

资源

若要详细了解如何使用适用于 .NET 的 Azure Blob 存储客户端库来列出容器,请参阅以下资源。

REST API 操作

Azure SDK for .NET 包含基于 Azure REST API 而生成的库,允许你通过熟悉的 .NET 范例与 REST API 操作进行交互。 用于列出容器的客户端库方法使用以下 REST API 操作:

客户端库资源

另请参阅