Azure Storage REST API リファレンス

Microsoft Azure Storage サービスの REST API を使用すると、Azure 内の Blob service、Queue サービス、Table service、File サービスにプログラムからアクセスすることができます。また、開発環境でストレージ エミュレーターを使って、これらのサービスにアクセスすることもできます。

REST API を使用して、すべてのストレージ サービスにアクセスできます。 ストレージ サービスへのアクセスは、Azure 内から行うことも、HTTP/HTTPS の要求送信と応答受信の機能を持つ任意のアプリケーションから直接インターネット上で行うこともできます。

重要

Azure ストレージ サービスは HTTP と HTTPS の両方をサポートしていますが、HTTPS の使用をお勧めします。

ストレージ アカウント

ストレージ サービスへのすべてのアクセスはストレージ アカウントで行われます。 ストレージ アカウントは、各基本サービスへのアクセスに使用する最高レベルの名前空間であり、 また、承認の基礎でもあります。

ストレージ サービス用の REST API は、ストレージ アカウントをリソースとして公開します。

Blob service

BLOB サービスには、バイナリ ファイルやテキスト ファイルなどのエンティティを格納する記憶域が用意されています。 BLOB Service 用の REST API は 2 つのリソース (コンテナーと BLOB) を公開します。 コンテナーは、BLOB のセットを含むフォルダーのようなものです。すべての BLOB はコンテナー内に存在する必要があります。 BLOB サービスは、次の 3 種類の BLOB を定義します。

  • ブロック BLOB。この BLOB はストリーミング用に最適化されています。 2009-09-19 より前のバージョンで使用できる BLOB は、このタイプの BLOB のみです。

  • ページ BLOB。ランダムな読み取り/書き込み用に最適化され、BLOB 内の一定のバイト範囲に書き込みを行うことができます。 ページ BLOB は、2009-09-19 バージョン以降で使用できます。 これらは主に、Azure VM をバックアップする VHD ファイルに使用されます。

  • 追加操作専用に最適化された追加 BLOB。 追加 BLOB は、バージョン 2015-02-21 以降でのみ使用できます。

コンテナーおよび BLOB は、名前と値のペアの形式で要求操作のヘッダーとして指定するユーザー定義のメタデータをサポートします。

BLOB サービス用の REST API を使用して、ファイル システムと同様の階層構造の名前空間を作成できます。 BLOB の名前により、構成可能なパス区切りを使用して階層をエンコードできます。 たとえば、 MyGroup/MyBlob1MyGroup/MyBlob2 という名前の BLOB は、BLOB の仮想レベルの組織を意味します。 BLOB の列挙操作はファイル システムと同様の方法で仮想階層のトラバースをサポートするため、グループに編成された一連の BLOB を返すことができます。 たとえば、 MyGroup/ で整理されたすべての BLOB を列挙できます。

ブロック BLOB の作成方法は 2 とおりあります。 1 つの Put BLOB 操作で BLOB をアップロードすることも、 Put Block 操作を使用してブロックのセットとして BLOB をアップロードし、 Put Block List 操作を使用してブロックを BLOB にコミットすることもできます。

ページ BLOB は、 Put BLOB の呼び出しで最大サイズで作成および初期化されます。 ページ BLOB にコンテンツを書き込むには、 Put Page 操作を呼び出します。

追加 BLOB は、 Put BLOB を呼び出すことによって作成できます。 Put Blob 操作で作成された追加 BLOB には、コンテンツは含まれません。 追加 BLOB にコンテンツを書き込むには、追加ブロック操作を呼び出して BLOB の末尾に ブロックを追加 します。 既存のブロックの更新または削除はサポートされていません。 各ブロックは、最大 4 MiB まで、異なるサイズにすることができます。 追加 BLOB の最大サイズは 195 GiB で、追加 BLOB には 50,000 個以下のブロックを含めることができます。

BLOB はコンカレンシー制御および効率的なアップロードに役立つ条件付き更新操作をサポートします。

BLOB の取得操作を呼び出すことで 、BLOB を 読み取ることができます。 クライアントは BLOB 全体または任意のバイト数を読み取ることができます。

BLOB サービス API リファレンスについては、「 Blob Service REST API」を参照してください。

キュー サービス

キュー サービスは、サービス内部またはサービス間で信頼性の高い永続的なメッセージングを行います。 キュー サービス用の REST API は 2 つのリソース (キューおよびメッセージ) を公開します。

キューは、名前と値のペアの形式で要求操作のヘッダーとして指定するユーザー定義のメタデータをサポートします。

各ストレージ アカウントには、アカウント内で一意の名前を付けたメッセージ キューをいくつでも設定できます。 各メッセージ キューに格納するメッセージの数にも制限はありません。 メッセージの最大サイズは、バージョン 2011-08-18 の場合は 64 KiB、以前のバージョンでは 8 KiB に制限されます。

メッセージをキューから読み取ると、コンシューマーはそのメッセージを処理した後、削除します。 読み取られたメッセージは、指定された期間に達するまで他のコンシューマーからは参照不可になります。 指定された期間に達してもメッセージが削除されなかった場合、そのメッセージは再度可視化され、他のコンシューマーが処理できるようになります。

Queue サービスの詳細については、「 Queue Service REST API」を参照してください。

テーブル サービス

Table Service は、テーブル形式の構造化ストレージです。 Table サービスは、 OData プロトコルを実装する REST API をサポートしています。

ストレージ アカウント内で、開発者はテーブルを作成できます。 テーブルにはデータがエンティティとして格納されます。 エンティティは行のようなもので、名前付きプロパティと値のコレクションです。 テーブルは、パーティションに分割することでストレージ ノード間の負荷分散をサポートします。 各テーブルが保持する最初のプロパティは、エンティティが属するパーティションを指定するパーティション キーです。 2 番目のプロパティは、特定のパーティション内のエンティティを指定する行キーです。 パーティション キーと行キーの組み合わせで、テーブル内の各エンティティを一意に識別するプライマリ キーが構成されます。

テーブル サービスはスキーマを設定しません。 開発時に、クライアント側でスキーマを実装および設定することもできます。 Table サービスの詳細については、「 Table Service REST API」を参照してください。

ファイル サービス

サーバー メッセージ ブロック (SMB) プロトコルは、現在オンプレミスで使用されている推奨されるファイル共有プロトコルです。 Microsoft Azure ファイル サービスでは、Azure のクラウドの "サービスとしてのインフラストラクチャ (IaaS)" の可用性と拡張性を利用できます。SMB クライアント アプリケーションを作成し直す必要はありません。

従来の Direct Attached Storage (DAS) および Storage Area Network (SAN) ソリューションは、インストール、構成、操作が複雑で高価な場合もよくありますが、Azure ファイル サービスは、こうしたソリューションの代替としても利用できます。

Azure File Service 共有に格納されているファイルには、SMB プロトコルと REST API を使用してアクセスできます。 ファイル サービスには、ストレージ アカウント、共有、ディレクトリ、ファイルの 4 つのリソースが用意されています。 共有によって複数のファイルを整理することができます。また、クラウドでホストされる SMB ファイル共有としてマウントすることもできます。

関連項目

BLOB サービス REST APIキュー サービス REST APIテーブル サービス REST APIファイル サービス REST API