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

CloudDrive.Snapshot メソッド

この Windows Azure ドライブと関連付けられたページ BLOB のスナップショットを作成します。

名前空間: Microsoft.WindowsAzure.StorageClient
アセンブリ: Microsoft.WindowsAzure.CloudDrive (Microsoft.WindowsAzure.CloudDrive 内)

'使用
Dim instance As CloudDrive
Dim returnValue As Uri

returnValue = instance.Snapshot

'宣言
Public Function Snapshot As Uri
public Uri Snapshot ()
public function Snapshot () : Uri

戻り値

新しく作成されたスナップショットの URI が返されます。

書き込み可能ドライブを作成し、データを書き込んだ後、ドライブのスナップショットを取得して、スナップショットを読み取り専用ドライブとしてマウントするコード例を次に示します。

public void MountDriveAndSnapshot()
{
    // Get a reference to the local resource.
    LocalResource localResource = RoleEnvironment.GetLocalResource("LocalDriveCache");

    // Initialize the drive cache.
    CloudDrive.InitializeCache(localResource.RootPath, localResource.MaximumSizeInMegabytes);

    // Use the storage emulator.
    CloudStorageAccount storageAccount = CloudStorageAccount.DevelopmentStorageAccount;

    // Create the Blob service client.
    CloudBlobClient client = storageAccount.CreateCloudBlobClient();

    // Create the container for the drive if it does not already exist.
    CloudBlobContainer container = new CloudBlobContainer("mydrives", client);
    container.CreateIfNotExist();

    // Create and mount a drive, allocating some cache space.
    CloudDrive drive1 = new CloudDrive(container.GetPageBlobReference("myvhd" + Path.GetRandomFileName()).Uri, storageAccount.Credentials);
    drive1.Create(50);
    string driveLetter = drive1.Mount((int)Math.Round((double)localResource.MaximumSizeInMegabytes / 2), DriveMountOptions.None);

    // Write to the drive.
    for (int i = 0; i < 1000; i++)
    {
        System.IO.File.WriteAllText(driveLetter + "\\" + i.ToString() + ".txt", "Test");
    }

    // Snapshot the drive.
    Uri snapshotUri = drive1.Snapshot();

    // Mount a drive using the snapshot.
    CloudDrive drive2 = new CloudDrive(snapshotUri, storageAccount.Credentials);
    driveLetter = drive2.Mount((int)Math.Round((double)localResource.MaximumSizeInMegabytes / 2), DriveMountOptions.None);

    // List each drive letter and associated page blob.
    foreach (var item in CloudDrive.GetMountedDrives())
    {
        System.Diagnostics.Debug.WriteLine("Drive letter: " + item.Key);
        System.Diagnostics.Debug.WriteLine("Page blob URI: " + item.Value);
    }
}

スナップショットは、特定の時点で取得された BLOB の読み取り専用コピーです。 Windows Azure ドライブをバックアップするページ 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 のようになります。

スナップショットを使用すると、読み取り専用ドライブを作成してマウントできます。

Snapshot メソッドを呼び出すたびに、新しいスナップショットが作成されます。 スナップショットは、明示的に削除しない限り残っています。

Important重要
ページ BLOB のスナップショットを作成したとき、基になっているページ BLOB とスナップショットが一致している限り、スナップショットは課金対象になりません。 ベース BLOB のページを更新すると、そのページはスナップショットに存在するページと異なるようになり、それ以降は異なっている両方のページに対して課金されます。 予想外の課金を防ぐには、ベース BLOB を更新した後、不要なスナップショットを削除します。


この型の public static (Visual Basic では Shared) メンバーは、スレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

開発プラットフォーム

Windows XP Home Edition, Windows XP Professional, Windows Server 2003、Windows Server 2008、および Windows 2000

対象プラットフォーム

コミュニティの追加

表示:
© 2014 Microsoft