2013-01-11 49 views
2

MVC Web应用程序的用户有没有办法避免必须通过MVC应用程序上传文件并最终让应用程序将其传输到存储?Azure Blob存储 - MVC Web应用程序 - 有没有办法直接上传到Azure Blob存储,而无需通过MVC Web应用程序?

换句话说,可以在Web客户端给予适当的SAS令牌直接上传到适当的位置在Azure的Blob存储一些如何?

我见过一个客户端应用程序复制直接Blob存储的例子,但找不到一个Web应用程序什么。谢谢!

+0

试图通过在Azure SDK采摘的node.js找到你正在寻找的JavaScript。 https://github.com/WindowsAzure/azure-sdk-for-node –

回答

-1

肯定的 - 这里有一个例子:

using Microsoft.WindowsAzure; 
using Microsoft.WindowsAzure.StorageClient; 

    private string UploadFileToBlob(string file) 
    { 
     // Retrieve storage account from connection string 
     CloudStorageAccount storageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("StorageConnectionString")); 

     // Create the blob client 
     CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); 

     // Retrieve reference to a previously created container 
     CloudBlobContainer container = blobClient.GetContainerReference("mydeployments"); 

     // Retrieve reference to a blob named "myblob" 
     var date = DateTime.UtcNow.ToString("yyyyMMdd-hhmmss-"); 
     var fileinfo = new FileInfo(file); 
     if (fileinfo.Exists) 
     { 
      var fileToUpload = new FileInfo(file).Name; 
      var filename = date + fileToUpload; 
      try 
      { 
       CloudBlob blob = container.GetBlobReference(filename); 

       // Create or overwrite the "myblob" blob with contents from a local file 
       using (var fileStream = System.IO.File.OpenRead(file)) 
       { 
        blob.UploadFromStream(fileStream); 
       } 

       return blob.Uri.AbsoluteUri; 
      } 
      catch (Exception ex) 
      { 
       LogError("Error uploading file to blog: ", ex.Message); 
       return ""; 
      } 
     } 

     LogError("Error - specified file does not exist: ", file); 
     return ""; 
    } 
+0

您的代码仍然会将文件传递给Web角色,然后Web角色需要将该文件传递给Azure Blob存储。这就是我想要避免的。我想避免通过网络角色传递它,但直接从客户端传递到azure blob存储。这可能不是,但我想我会看看是否有人有任何创意。我会考虑的节点,看看.. –

+0

阅读这篇文章 - http://blogs.msdn.com/b/tconte/archive/2011/08/10/accessing-windows-azure-blob-storage-using-jquery。 ASPX – viperguynaz

2

此时,因为Windows Azure存储没有CORS支持是不可能的。然而,在\ Build会议存储团队的演示中,它表示它即将到来。实现此目的的一种方法是,仅通过@viperguyz链接中提到的方式托管要在该存储帐户中上传的HTML页面,并使用SAS在该存储帐户中上传Blob。如果您愿意,您可以将自定义域映射到您的blob存储帐户并使用该域名。自定义域名的问题是您将无法使用SSL。

+0

CORS现在是服务现有从@ Guarav的梦幻般的博客:http://gauravmantri.com/2013/11/28/new-changes-to-windows-azure-storage-a-perfect-thanksgiving-gift/ –

相关问题