セールス: 1-800-867-1380

Snapshot Blob (REST API)

発行: 2011年8月

更新日: 2014年12月

Snapshot Blob 操作は、BLOB の読み取り専用スナップショットを作成します。

Snapshot Blob 要求の構成は次のとおりです。HTTPS が推奨されます。myaccount はストレージ アカウントの名前に置き換えます。

 

  PUT メソッド要求の URI HTTP バージョン

https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=snapshot

HTTP/1.1

エミューレートされたストレージ サービスに対する要求では、エミュレーターのホスト名と BLOB サービス ポートを 127.0.0.1:10000 と指定し、その後にエミューレートされたアカウント名を指定します。

 

  PUT メソッド要求の URI HTTP バージョン

http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=snapshot

HTTP/1.1

詳細については、「開発とテストのための Azure のストレージ エミュレーター使用」を参照してください。

次の追加パラメーターを要求の URI で指定できます。

 

Parameter 説明

timeout

省略可能。timeout パラメーターは、秒単位で表されます。詳細については、「BLOB サービス操作のタイムアウトの設定」を参照してください。

必須要求ヘッダーと省略可能な要求ヘッダーを次の表に示します。

 

要求ヘッダー 説明

Authorization

必須。認証スキーム、アカウント名、および署名を指定します。詳細については、「Azure ストレージ サービスの認証」を参照してください。

Date またはx-ms-date

必須。要求の世界協定時刻 (UTC) を指定します。詳細については、「Azure ストレージ サービスの認証」を参照してください。

x-ms-version

認証されたすべての要求について必須です。この要求に使用する操作のバージョンを指定します。詳細については、「Windows Azure の BLOB サービス、キュー サービス、およびテーブル サービスのバージョン管理」を参照してください。

x-ms-meta-name:value

省略可能。BLOB に関連付けられたユーザー定義の名前と値のペアを指定します。名前と値のペアを指定しない場合、ベース BLOB メタデータがスナップショットにコピーされます。1 つまたは複数の名前と値のペアを指定した場合、指定したメタデータでスナップショットが作成され、メタデータはベース BLOB からコピーされません。

バージョン 2009-09-19 以降では、メタデータの名前は C# 識別子の名前付け規則に従う必要があります。詳細については、「コンテナー、BLOB、およびメタデータの名前付けおよび参照」を参照してください。

If-Modified-Since

省略可能。DateTime 値。この条件ヘッダーを指定すると、BLOB が指定した日付/時刻以降に変更された場合にのみ BLOB のスナップショットが取得されます。ベース BLOB が変更されなかった場合、BLOB サービスはステータス コード 412 (Precondition Failed) を返します。

If-Unmodified-Since

省略可能。DateTime 値。この条件ヘッダーを指定すると、BLOB が指定した日付/時刻以降に変更されなかった場合にのみ BLOB のスナップショットが取得されます。ベース BLOB が変更された場合、BLOB サービスはステータス コード 412 (Precondition Failed) を返します。

If-Match

省略可能。ETag 値。この条件ヘッダーの ETag 値を指定すると、ETag 値が指定した値に一致する場合にのみ BLOB のスナップショットが取得されます。値が一致しない場合、BLOB サービスはステータス コード 412 (Precondition Failed) を返します。

If-None-Match

省略可能。ETag 値。

この条件ヘッダーの ETag 値を指定すると、ETag 値が指定した値に一致しない場合にのみ BLOB のスナップショットが取得されます。値が一致する場合、BLOB サービスはステータス コード 412 (Precondition Failed) を返します。

x-ms-lease-id:<ID>

省略可能。このヘッダーを指定すると、次の 2 つの条件を満たした場合にのみ操作が実行されます。

  • BLOB のリースが現在アクティブになっている。

  • 要求に指定されたリース ID が BLOB のリース ID と一致している。

このヘッダーを指定すると、2 つの条件を満たしていない場合は要求が失敗し、Snapshot Blob 操作はステータス コード 412 (Precondition Failed) で失敗します。

x-ms-client-request-id

省略可能。Storage Analytics Logging が有効な場合に解析ログに記録される、クライアントで生成された非透過の値を 1 KB の文字制限付きで提供します。クライアント側のアクティビティとサーバーが受け取る要求を相互に関連付けるには、このヘッダーを使用することを強くお勧めします。詳細については、「Storage Analytics Logging について」および「Windows Azure のログ: ログを使用した、ストレージ要求の追跡」を参照してください。

この操作では、条件ヘッダーを使用して、指定した条件を満たした場合にのみ操作を実行することもできます。詳細については、「BLOB サービス操作の条件ヘッダーの指定」を参照してください。

なし。

応答には、HTTP 状態コードおよび一連の応答ヘッダーが含まれています。

操作が正常に終了すると、ステータス コード 201 (Created) が返されます。

ステータス コードの詳細については、「ステータス コードとエラー コード」を参照してください。

この操作の応答には、次のヘッダーが含まれています。応答に追加の標準 HTTP ヘッダーが含まれる場合もあります。標準ヘッダーはすべて、HTTP/1.1 プロトコル仕様に準拠しています。

 

構文 説明

x-ms-snapshot: <DateTime>

このヘッダーはスナップショットを一意に識別する DateTime 値を返します。このヘッダーの値はスナップショットのバージョンを示し、以降の要求でスナップショットへのアクセスに使用できます。この値は非透過的です。

ETag

スナップショットの ETag。要求バージョンが 2011-08-18 またはそれ以降である場合、ETag 値は引用符で囲まれます。スナップショットに書き込むことはできないため、スナップショットの ETag は不変です。ただし、新しいメタデータを Snaphot Blob 要求で指定した場合、スナップショットの ETag はベース BLOB の ETag とは異なります。要求でメタデータを指定しなかった場合、スナップショットの ETag はスナップショット取得時のベース BLOB の ETag と同一になります。

Last-Modified

スナップショットの最終更新時刻。日付形式は RFC 1123 に従います。詳細については、「ヘッダーにおける日付/時刻値の表現」を参照してください。

スナップショットに書き込むことはできないため、スナップショットの最終更新時刻は不変です。ただし、新しいメタデータを Snaphot Blob 要求で指定した場合、スナップショットの最終更新時刻はベース BLOB の最終更新時刻とは異なります。要求でメタデータを指定しなかった場合、スナップショットの最終更新時刻はスナップショット取得時のベース BLOB の最終更新時刻と同一になります。

x-ms-request-id

このヘッダーは要求を一意に識別するので、要求のトラブルシューティングに使用できます。詳細については、「API 操作のトラブルシューティング」を参照してください。

x-ms-version

要求の実行に使用する BLOB サービスのバージョンを示します。このヘッダーはバージョン 2009-09-19 以降で行った要求に対して返されます。

Date

サービスによって生成される、応答の開始時刻を示す UTC 日付/時刻値。

なし。

この操作を呼び出すことができるのはアカウント所有者のみです。

スナップショットは読み取り専用の BLOB です。作成したスナップショットは読み取り、コピー、削除を行うことができますが、変更はできません。

スナップショットは BLOB データをバックアップするのに便利な方法です。スナップショットを使用し、Copy Blob を呼び出してベース BLOB をスナップショットで上書きすることにより、BLOB を以前のバージョンに復元できます。

スナップショットを作成すると、BLOB サービスはベース BLOB を基準にしてスナップショットを一意に識別する DateTime 値を返します。この値を使用して、スナップショットを詳細に操作できます。DateTime 値は非透過的に扱う必要があります。

DateTime 値は URI のスナップショットを識別します。たとえば、ベース BLOB とそのスナップショットの URI は次のようになります。

  • ベース BLOB: http://myaccount.blob.core.windows.net/mycontainer/myblob

  • スナップショット: http://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>

Snapshot Blob 操作を呼び出すたびに、新しいスナップショットが一意の DateTime 値で作成されます。BLOB がサポートするスナップショットの数に制限はありません。既存のスナップショットは上書きされないため、Delete Blob (REST API) を呼び出し、x-ms-include-snapshots ヘッダーに適切な値を設定して、明示的に削除する必要があります。

スナップショットの読み取り、コピー、削除

Snapshot Blob の呼び出しが成功すると、x-ms-snapshot 応答ヘッダーに DateTime 値が返されます。この DateTime 値を使用して、特定バージョンのスナップショットの読み取り、削除、またはコピー操作を行うことができます。スナップショットに対して有効な BLOB サービスの操作を呼び出すには、BLOB 名の後に ?snapshot=<DateTime> を指定します。

BLOB のプロパティおよびメタデータのコピー

BLOB のスナップショットを作成すると、次のシステム プロパティが同じ値でスナップショットにコピーされます。

  • Content-Type

  • Content-Encoding

  • Content-Language

  • Content-Length

  • Cache-Control

  • Content-MD5

  • x-ms-blob-sequence-number (for page blobs only)

  • x-ms-copy-id (バージョン 2012-02-12 以降)

  • x-ms-copy-status (バージョン 2012-02-12 以降)

  • x-ms-copy-source (バージョン 2012-02-12 以降)

  • x-ms-copy-progress (バージョン 2012-02-12 以降)

  • x-ms-copy-completion-time (バージョン 2012-02-12 以降)

  • x-ms-copy-status-description (バージョン 2012-02-12 以降)

ブロック BLOB の場合、ベース BLOB のコミットされたブロック リストもスナップショットにコピーされます。コミット前のブロックはコピーされません。

スナップショット BLOB のサイズは常にスナップショット取得時のベース BLOB と同じであるため、スナップショット BLOB の Content-Length ヘッダーの値はベース BLOB と同じになります。

スナップショットに 1 つまたは複数の新しいメタデータ値を指定するには、要求の x-ms-meta-name:value ヘッダーを指定します。このヘッダーを指定しない場合、ベース BLOB に関連付けられたメタデータがスナップショットにコピーされます。

条件ヘッダーの指定

要求に条件ヘッダーを指定すると、条件を満たした場合にのみ BLOB のスナップショットが取得されます。指定した条件を満たしていない場合、スナップショットは作成されず、BLOB サービスはステータス コード 412 (Precondition Failed) と、満たしていない条件に関する追加のエラー情報を返します。

リースした BLOB のスナップショットの作成

ベース BLOB にアクティブなリースが存在する場合、要求が次のいずれかの条件を満たしていれば、BLOB のスナップショットを作成できます。

  • 要求に条件付きの x-ms-lease-id ヘッダーが指定され、ベース BLOB のアクティブ リース ID が含まれている。この条件は、リースがアクティブで、指定したリース ID が BLOB に関連付けられたリース ID と一致している場合にのみスナップショットを作成することを指定します。

  • x-ms-lease-id ヘッダーが指定されていない。この場合、排他的な書き込みリースは無視されます。

ベース BLOB に関連付けられたリースはスナップショットにコピーされません。スナップショットはリースできません。

スナップショットのコピー

Copy Blob 操作を使用してベース BLOB をコピーすると、ベース BLOB のスナップショットはコピー先 BLOB にコピーされません。コピー先 BLOB をコピーで上書きした場合、コピー先 BLOB に関連付けられたスナップショットは名前が変わっても元のままです。

スナップショット BLOB をベース BLOB にコピーすることにより、BLOB を以前のバージョンに復元できます。スナップショットは元のままで、ベース BLOB が読み取りおよび書き込みできるコピーで上書きされます。

noteメモ
この方法でスナップショットを昇格した場合、スナップショットとベース BLOB 間でブロックまたはページが共有されるため、ストレージ リソースの追加料金は発生しません。

この情報は役に立ちましたか。
(残り 1500 文字)
フィードバックをいただき、ありがとうございました
表示:
© 2014 Microsoft