2016-04-26 68 views
0

这就是我上传到蔚蓝的页面Blob存储如何正确UploadAsync到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 + offsetToTransferUploadAsync?我的意思是我怎么能指定一个position我想写的地方?

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

DataMovement Library用于将整个流/文件上传到页面blob,它不支持写入指定的偏移量。 –

回答

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); 

允许你写一个顺序组页面高达4MBs,并写入到必须启动一个512字节边界上偏移(startingOffset%512 == 0),和512的边界上结束 - 1

希望这有助于

最好的问候

Stéphane