エクスポート (0) 印刷
すべて展開

BLOB のスナップショットの作成

更新日: 2014年11月

BLOB のスナップショットを作成できます。スナップショットとは、ある時点で取得された BLOB の読み取り専用バージョンです。作成したスナップショットは読み取り、コピー、削除を行うことができますが、変更はできません。スナップショットを使用すると、任意の時点で表示された BLOB をバックアップすることができます。

BLOB のスナップショットには、スナップショットの取得元となるベース BLOB と同じ名前が付いており、スナップショットが取得された時間を示す DateTime 値が付加されています。たとえば、ページ BLOB の URI が http://storagesample.core.blob.windows.net/mydrives/myvhd である場合、スナップショットの URI は http://storagesample.core.blob.windows.net/mydrives/myvhd?snapshot=!2011-03-09T01:42:34.9360000Z のようになります。この値を使用して、今後の操作でスナップショットを参照できます。BLOB のスナップショットは URI を共有しており、この DateTime 値のみによって識別されます。クライアント ライブラリ コードでは、BLOB の Snapshot プロパティによって、ベース BLOB に基づいてスナップショットを一意に識別する DateTime 値が返されます。この値を使用して、スナップショットを詳細に操作できます。

BLOB に対するスナップショットの数に制限はありません。スナップショットは、明示的に削除されるまで保持されます。スナップショットは、コピー元 BLOB よりも長く保持することはできません。BLOB に関連付けられたスナップショットを列挙して、現在のスナップショットを追跡することができます。

プロパティの継承

BLOB のスナップショットを作成すると、システム プロパティが同じ値でスナップショットにコピーされます。.NET ストレージ クライアント ライブラリについてコピーされるシステム プロパティを次に示します。

  • ContentType

  • ContentEncoding

  • ContentLanguage

  • Length

  • CacheControl

  • ContentMd5

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

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

BLOB やスナップショットに関連するコピー操作は次のルールに従います。

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

  • スナップショットを別の名前でコピー先 BLOB にコピーします。結果となるコピー先 BLOB は書き込み可能な BLOB であり、スナップショットではありません。

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

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

アクセス条件の指定

アクセス条件を指定することで、その条件を満たしている場合にのみスナップショットを作成することができます。アクセス条件を指定するには、AccessCondition プロパティを使用します。指定した条件を満たしていない場合、スナップショットは作成されず、BLOB サービスは状態コード HTTPStatusCode.PreconditionFailed を返します。

スナップショットの削除

スナップショットを持つ BLOB は、スナップショットが削除されてからでないと、削除できません。スナップショットは個別に削除できます。また、コピー元 BLOB を削除するとき、ストレージ サービスを利用してすべてのスナップショットを削除することもできます。スナップショットを持つ BLOB を削除しようとすると、エラーが返されます。

スナップショットへの絶対 URI の作成

次のコード例は、ベース BLOB オブジェクトからのスナップショットの絶対 URI を作成します。

var snapshot = blob.CreateSnapshot();
var uri = Microsoft.WindowsAzure.StorageClient.Protocol.BlobRequest.Get
    (snapshot.Uri, 
    0, 
    snapshot.SnapshotTime.Value, 
    null).Address.AbsoluteUri;

参照

表示:
© 2014 Microsoft