如何正确UploadAsync到Azure页面blob?

时间:2016-04-26 14:09:28

标签: c# azure azure-storage-blobs

这就是我上传到azure页面blob存储的方式

var memoryStream = new MemoryStream(range, offsetToTransfer, sizeToTransfer, false, false);
pageBlob.WritePages(memoryStream, vhdOffset + offsetToTransfer, null);
Console.WriteLine("Range ~" + Megabytes(offsetToTransfer + vhdOffset) + " + " + PrintSize(sizeToTransfer));`

Azure建议我使用此library上传等。

如何将第二个参数(它的偏移量)vhdOffset + offsetToTransfer设置为UploadAsync?我的意思是如何指定我想写的position

var memoryStream = new MemoryStream(range, offsetToTransfer, sizeToTransfer, false, false);
TransferManager.UploadAsync(memoryStream, pageBlob);

1 个答案:

答案 0 :(得分:0)

如果您希望编写带偏移量的页面,可以使用此处记录的CloudPageBlob.WritePagesAsync API。 https://msdn.microsoft.com/en-us/library/microsoft.windowsazure.storage.blob.cloudpageblob.writepagesasync(v=azure.10).aspx

这里有一个基于CloudPageBlob.WritePages API的完整示例。

https://blogs.msdn.microsoft.com/windowsazurestorage/2010/04/10/using-windows-azure-page-blobs-and-how-to-efficiently-upload-and-download-page-blobs/

以下代码:

    MemoryStream memoryStream = new MemoryStream(range, 
                       offsetToTransfer, sizeToTransfer, false, false);
    pageBlob.WritePages(memoryStream, vhdOffset + offsetToTransfer);

允许您编写最多4MB的连续页面集,并且写入的偏移量必须从512字节边界开始(startingOffset%512 == 0),并以512边界结束 - 1.

希望这有帮助

祝你好运

斯特凡