2016-04-26 4 views
0

Das ist, wie ich auf azur Seite Blob SpeicherWie kann ich Async korrekt in Azure-Seitenblobs hochladen?

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

Azure laden empfiehlt mir diese library zu verwenden usw.

Wie kann ich zweiten Parametersatz hochladen (es ist Offset) vhdOffset + offsetToTransfer-UploadAsync? Ich meine, wie kann ich eine position angeben, wo ich schreiben möchte?

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

DataMovement Bibliothek zum Hochladen der ganzen Strom/Datei auf Seite Blob verwendet wird, unterstützt nicht das Schreiben eines angegebenen Offset. –

Antwort

0

Wenn Sie eine Seite mit einem Versatz schreiben möchten, können Sie die CloudPageBlob.WritePagesAsync API Wich verwenden ist hier dokumentiert. https://msdn.microsoft.com/en-us/library/microsoft.windowsazure.storage.blob.cloudpageblob.writepagesasync(v=azure.10).aspx

Dort finden Sie ein vollständiges Beispiel basierend auf CloudPageBlob.WritePages API hier.

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

Der folgende Code:

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

ermöglicht es Ihnen, bis zu 4MBs eine sequentielle Reihe von Seiten zu schreiben, und das auf einem 512-Byte-Grenze (startingOffset% 512 geschrieben versetzt sind, müssen beginnen == 0), und am Ende auf einer 512 Grenze - 1.

this helps

Mit freundlichen Grüßen

Stéphane