2012-08-11 25 views
6

से ब्लॉब फ़ाइल को ब्लॉब में सहेजें, क्या कोई अपलोड की गई फ़ाइल को बाइनरी में एज़ूर ब्लॉब में सहेजने के लिए कोड प्रदान कर सकता है? मैं वर्तमान में एक टेक्स्ट सेव का उपयोग करता हूं जो विशाल फाइलों पर अविश्वसनीय रूप से धीमा है, ब्लॉब को पढ़ने/सहेजने, रेखा से लाइन।httppostedfile

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

इस कोड टुकड़ा है कि ब्लॉब भंडारण में फ़ोटो धक्का एक उत्पादन एप्लिकेशन पर आधारित है। यह दृष्टिकोण स्ट्रीम को सीधे HttpPostedFile से खींचता है और इसे ब्लॉब में संग्रहीत करने के लिए सीधे क्लाइंट लाइब्रेरी में रखता है। आपको अपने आवेदन के आधार पर कुछ चीजें बदलनी चाहिए:

  • ब्लॉबनाम को अनुकूलित करने की आवश्यकता होगी।
  • ब्लॉब ग्राहक प्राप्त करने में कठिनाई अप करने के लिए connectionstring सहायक वर्गों में अलग करना चाहिए
  • इसी तरह आप अपने व्यापार के तर्क के आधार पर ब्लॉब कंटेनर के लिए एक सहायक चाहते हैं की संभावना होगी
  • आप कंटेनर पूरी तरह से सार्वजनिक रूप से सुलभ होने के लिए नहीं चाहते हो सकता है । यह आपको यह दिखाने के लिए जोड़ा गया था कि अगर आपको
// 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);