.NET を使用して BLOB コンテナーを一覧表示する

Azure Storage アカウント内のコンテナーをコードから一覧表示する際には、Azure Storage からの結果の取得方法を管理するためのオプションをいくつか指定できます。 この記事では、.NET 用の Azure Storage クライアント ライブラリを使用してコンテナーを一覧表示する方法について説明します。

前提条件

  • この記事では、.NET 用の Azure Blob Storage クライアント ライブラリを操作するようにプロジェクトが既に設定されていることを前提としています。 パッケージのインストール、using ディレクティブの追加、認可されたクライアント オブジェクトの作成など、プロジェクトの設定については、「Azure Blob Storage と .NET の作業開始」を参照してください。
  • 認可メカニズム には、BLOB コンテナーを一覧表示するためのアクセス許可が必要です。 詳細については、次の REST API 操作の認可ガイダンスを参照してください。

コンテナーの一覧表示のオプションについて

コードからコンテナーを一覧表示する際に、Azure Storage から結果を返す方法を管理するための多くのオプションを指定できます。 各結果セットで返す結果の数を指定し、後続のセットを取得できます。 プレフィックスで結果をフィルター処理したり、結果を含むコンテナー メタデータを返したりできます。 以降のセクションでは、これらのオプションについて説明します。

ストレージ アカウント内のコンテナーを一覧表示するには、次のいずれかのメソッドを呼び出します。

これらのメソッドは、BlobContainerItem オブジェクトの一覧を返します。 コンテナーは、名前によって辞書の順序で並べ替えられます。

返される結果の数を管理する

既定では、一覧表示操作から一度に最大 5,000 件の結果が返されますが、各一覧表示操作で返される結果の数は指定できます。 この記事の例は、結果をページに返す方法を示しています。 改ページの概念の詳細については、「Azure SDK for .NET を使用した改ページ」を参照してください。

プレフィックスを使用して結果をフィルター処理する

コンテナーの一覧をフィルター処理するには、 prefixパラメーターの文字列を指定します。 プレフィックス文字列には、1 つ以上の文字を含めることができます。 Azure Storage は、名前がそのプレフィックスで始まるコンテナーだけを返します。

コンテナー メタデータを含める

結果と共にコンテナーのメタデータを含めるには、BlobContainerTraits 列挙型の Metadata 値を指定します。 Azure Storage では、返される各コンテナーにメタデータが含まれているため、コンテナーのメタデータを個別にフェッチする必要はありません。

削除されたコンテナーを含める

論理削除されたコンテナーを結果と共に含めるには、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 Storage クライアント ライブラリを使用したコンテナーの一覧表示の詳細については、次のリソースを参照してください。

REST API の操作

Azure SDK for .NET には Azure REST API に基づいて構築されたライブラリが含まれるため、使い慣れた .NET パラダイムを通じて REST API 操作を利用できます。 コンテナーを一覧表示するためのクライアント ライブラリ メソッドでは、次の REST API 操作が使用されます。

クライアント ライブラリのリソース

関連項目