private static async Task PageRangesSample(CloudBlobContainer container)
{
BlobRequestOptions requestOptions = new BlobRequestOptions { RetryPolicy = new ExponentialRetry(TimeSpan.FromSeconds(1), 3) };
await container.CreateIfNotExistsAsync(requestOptions, null);
Console.WriteLine("Create Page Blob");
CloudPageBlob pageBlob = container.GetPageBlobReference("blob1");
pageBlob.Create(4 * 1024);
Console.WriteLine("Write Pages to Blob");
byte[] buffer = GetRandomBuffer(1024);
using (MemoryStream memoryStream = new MemoryStream(buffer))
{
pageBlob.WritePages(memoryStream, 512);
}
using (MemoryStream memoryStream = new MemoryStream(buffer))
{
pageBlob.WritePages(memoryStream, 3 * 1024);
}
Console.WriteLine("Get Page Ranges");
IEnumerable<PageRange> pageRanges = pageBlob.GetPageRanges();
foreach (PageRange pageRange in pageRanges)
{
Console.WriteLine(pageRange.ToString());
}
// Clean up after the demo. This line is not strictly necessary as the container is deleted in the next call.
// It is included for the purposes of the example.
Console.WriteLine("Delete page blob");
await pageBlob.DeleteIfExistsAsync();
Console.WriteLine();
}