2017-11-09 3 views
0

Ich schreibe meinen C# -Code neu, um Azure Blob-Speicher anstelle von Dateisystem zu verwenden. Bis jetzt gibt es keine Probleme beim Umschreiben von Code für normale Dateioperationen. Aber ich habe einige Codes, async Schreib aus einem Strom verwendet:Stream asynchron nach Azure BlobStorage schreiben

 using (var stream = await Request.Content.ReadAsStreamAsync()) 
     { 
      FileStream fileStream = new FileStream(@"c:\test.txt", FileMode.Create, FileAccess.Write, FileShare.None); 

      await stream.CopyToAsync(fileStream).ContinueWith(
      (copyTask) => 
      { 
       fileStream.Close(); 
      }); 
     } 

Ich brauche die oben zu ändern Zu CloudBlockBlob oder CloudBlobStream verwenden - aber nicht einen Weg finden, ein Stream-Objekt zu erklären, dass copyToAsync schreiben kann .

+1

Mögliches Duplikat [Hochladen auf azur asynchron direkt aus einem Stream] (https://stackoverflow.com/questions/13891497/ Upload-to-azure-asynchron-direkt-from-a-stream) –

Antwort

0

Sie möchten UploadFromStreamAsync Methode auf CloudBlockBlob verwenden. Hier ist ein Codebeispiel, dies zu tun (ich habe nicht versucht, diesen Code ausgeführt obwohl):

 var cred = new StorageCredentials(accountName, accountKey); 
     var account = new CloudStorageAccount(cred, true); 
     var blobClient = account.CreateCloudBlobClient(); 
     var container = blobClient.GetContainerReference("container-name"); 
     var blob = container.GetBlockBlobReference("blob-name"); 
     using (var stream = await Request.Content.ReadAsStreamAsync()) 
     { 
      stream.Position = 0; 
      await blob.UploadFromStreamAsync(stream); 
     } 
+0

Danke, schlug die vorgeschlagene Lösung. – user8538243

Verwandte Themen