2012-08-11 71 views
6

有人可以提供代碼來將上傳的文件保存爲二進制格式的azure blob嗎?我目前使用的文本保存在大文件上非常慢,讀取/保存到blob,一行一行。將二進制文件從httppostedfile保存到blob

Private Function ReadFile(ByVal file As HttpPostedFile) As String 
     Dim result As String = "" 
     Dim objReader As New System.IO.StreamReader(file.InputStream) 
     Do While objReader.Peek() <> -1 
      result = result & objReader.ReadLine() & vbNewLine 
     Loop 
     Return result 
    End Function 

由於

回答

7

此代碼段是基於在生產應用程序,推照片轉換成Blob存儲。這種方法直接從HttpPostedFile獲取流,並直接將其傳遞到客戶端庫以存儲到Blob中。你應該根據你的應用程序改變幾件事:

  • blobName可能需要適應。
  • ConnectionString中最多取斑客戶應隔離成輔助類
  • 同樣,你可能會希望在BLOB容器幫手根據你的業務邏輯
  • 您可能不希望容器是完全公開訪問。這只是爲了告訴你怎麼做,如果你喜歡
// assuming HttpPostedFile is in a variable called postedFile 
var contentType = postedFile.ContentType; 
var streamContents = postedFile.InputStream; 
var blobName = postedFile.FileName 

var connectionString = CloudConfigurationManager.GetSetting("YOURSTORAGEACCOUNT_CONNECTIONSTRING"); 
var storageAccount = CloudStorageAccount.Parse(connectionString); 
var blobClient = storageAccount.CreateCloudBlobClient(); 

var container = blobClient.GetContainerReference("YOURCONTAINERNAME"); 
container.CreateIfNotExist(); 
container.SetPermissions(new BlobContainerPermissions { PublicAccess = BlobContainerPublicAccessType.Blob }); 

var blob = container.GetBlobReference(blobName); 
blob.Properties.ContentType = contentType; 
blob.UploadFromStream(streamContents); 
相關問題