アプリが Blob Storage データ リソースと対話する方法を理解する

Azure Blob Storage のデータ リソースを操作するアプリケーションを構築する際に、コードでは主に、ストレージ アカウント、コンテナー、BLOB という 3 つのリソースの種類と対話します。 この記事では、これらのリソースの種類について説明し、それらが相互にどのように関連しているかを示します。 また、アプリケーション コードで Azure Blob Storage クライアント ライブラリを使用してこれらのさまざまなリソースと対話する方法についても説明します。

Blob Storage のリソースの種類

Azure Blob Storage クライアント ライブラリを使用すると、ストレージ サービス内の 3 種類のリソースを操作できます。

次の図に、これらのリソースの関係を示します。

ストレージ アカウント、コンテナー、BLOB の関係を示す図

ストレージ アカウント

ストレージ アカウントは、データ用の一意の名前空間を Azure 内に用意します。 Azure Storage 内に格納されるすべてのオブジェクトには、一意のアカウント名を含むアドレスが割り当てられます。 アカウント名と Blob Storage エンドポイントの組み合わせによって、ストレージ アカウント内のオブジェクト用のベース アドレスが形成されます。

たとえば、ストレージ アカウントの名前が sampleaccount の場合、Blob Storage の既定のエンドポイントは次のようになります。

https://sampleaccount.blob.core.windows.net

ストレージ アカウントの詳細については、「Azure ストレージ アカウントの概要」を参照してください。

Containers

ファイル システムのディレクトリと同じように、コンテナーを使用して BLOB のセットを整理できます。 ストレージ アカウントに含めることができるコンテナーの数には制限がなく、1 つのコンテナーに格納できる BLOB の数にも制限はありません。

コンテナーの URI は次のようになります。

https://sampleaccount.blob.core.windows.net/sample-container

コンテナーの詳細については、「Naming and Referencing Containers, Blobs, and Metadata」(コンテナー、BLOB、およびメタデータの名前付けと参照) を参照してください。

BLOB

Azure Storage では、3 種類の BLOB がサポートされています。

  • ブロック BLOB には、テキストとバイナリ データが格納されます。 ブロック BLOB は、個別に管理できるデータ ブロックで構成されます。 ブロック BLOB は、最大約 190.7 TiB のデータを格納できます。
  • 追加 BLOB は、ブロック BLOB と同様にブロックで構成されますが、追加操作用に最適化されています。 追加 BLOB は、仮想マシンのデータのログ記録などのシナリオに最適です。
  • ページ BLOB には、最大 8 TiB のランダム アクセス ファイルを格納できます。 ページ BLOB について詳しくは、「Azure ページ BLOB の概要」をご覧ください

異なる種類の BLOB の詳細については、「Understanding Block Blobs, Append Blobs, and Page Blobs」(ブロック BLOB、追加 BLOB、ページ BLOB について) をご覧ください。

BLOB の URI は次のようになります。

https://sampleaccount.blob.core.windows.net/sample-container/sample-blob

BLOB 名前付けの詳細については、「コンテナー、BLOB、およびメタデータの名前付けと参照」を参照してください。

Azure SDK を使用してデータ リソースを操作する

Azure SDK には Azure REST API に基づいて構築されたライブラリが含まれるため、使い慣れたプログラミング言語のパラダイムを通じて REST API 操作を実行できます。 SDK は、アプリケーションと Azure リソース間の操作をシンプルにするように設計されています。

Azure Blob Storage クライアント ライブラリでは、各リソースの種類は 1 つ以上の関連付けられたクラスで表されます。 これらのクラスは、Azure Storage リソースを処理するための操作を提供します。

次の表に、簡単な説明を添えて、基本的なクラスの一覧を示します。

クラス 説明
BlobServiceClient ストレージ アカウントを表します。アカウントのプロパティを取得および構成し、ストレージ アカウント内の BLOB コンテナーを処理するための操作を提供します。
BlobContainerClient 特定の BLOB コンテナーを表します。コンテナーとその中の BLOB を処理するための操作を提供します。
BlobClient 特定の BLOB を表します。スナップショットをアップロード、ダウンロード、削除、作成する操作など、BLOB を処理するための一般的な操作を提供します。
AppendBlobClient 追加 BLOB を表します。ログ データの追加など、追加 BLOB に固有の操作を提供します。
BlockBlobClient ブロック BLOB を表します。データのブロックのステージングとその後のコミットなど、ブロック BLOB に固有の操作を提供します。

次のパッケージに、Blob Storage データ リソースの操作に使用するクラスが含まれています。

  • Azure.Storage.Blobs: サービス、コンテナー、BLOB を操作するために使用できるプライマリ クラス ("クライアント オブジェクト") が含まれています。
  • Azure.Storage.Blobs.Specialized: BLOB の種類 (ブロック BLOB など) に固有の操作を実行するために使用できるクラスが含まれています。
  • Azure.Storage.Blobs.Models: 他のすべてのユーティリティ クラス、構造体、列挙型。

次のステップ

SDK を使用した Azure リソースの操作は、クライアント インスタンスの作成から始まります。 クライアント オブジェクトの作成と管理の詳細については、「データ リソースを操作するクライアント オブジェクトの作成および管理」を参照してください。