MVC Web应用程序的用户有没有办法避免必须通过MVC应用程序上传文件并最终让应用程序将其传输到存储?Azure Blob存储 - MVC Web应用程序 - 有没有办法直接上传到Azure Blob存储,而无需通过MVC Web应用程序?
换句话说,可以在Web客户端给予适当的SAS令牌直接上传到适当的位置在Azure的Blob存储一些如何?
我见过一个客户端应用程序复制直接Blob存储的例子,但找不到一个Web应用程序什么。谢谢!
MVC Web应用程序的用户有没有办法避免必须通过MVC应用程序上传文件并最终让应用程序将其传输到存储?Azure Blob存储 - MVC Web应用程序 - 有没有办法直接上传到Azure Blob存储,而无需通过MVC Web应用程序?
换句话说,可以在Web客户端给予适当的SAS令牌直接上传到适当的位置在Azure的Blob存储一些如何?
我见过一个客户端应用程序复制直接Blob存储的例子,但找不到一个Web应用程序什么。谢谢!
肯定的 - 这里有一个例子:
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 "";
}
您的代码仍然会将文件传递给Web角色,然后Web角色需要将该文件传递给Azure Blob存储。这就是我想要避免的。我想避免通过网络角色传递它,但直接从客户端传递到azure blob存储。这可能不是,但我想我会看看是否有人有任何创意。我会考虑的节点,看看.. –
阅读这篇文章 - http://blogs.msdn.com/b/tconte/archive/2011/08/10/accessing-windows-azure-blob-storage-using-jquery。 ASPX – viperguynaz
此时,因为Windows Azure存储没有CORS支持是不可能的。然而,在\ Build会议存储团队的演示中,它表示它即将到来。实现此目的的一种方法是,仅通过@viperguyz链接中提到的方式托管要在该存储帐户中上传的HTML页面,并使用SAS在该存储帐户中上传Blob。如果您愿意,您可以将自定义域映射到您的blob存储帐户并使用该域名。自定义域名的问题是您将无法使用SSL。
CORS现在是服务现有从@ Guarav的梦幻般的博客:http://gauravmantri.com/2013/11/28/new-changes-to-windows-azure-storage-a-perfect-thanksgiving-gift/ –
您可以从客户端上传不接触使用JavaScript MVC网站,我对如何做到这一点 http://blog.dynabyte.se/2013/10/09/uploading-directly-to-windows-azure-blob-storage-from-javascript/ 的code is at GitHub
它是基于Gaurav Mantris example写了一个博客帖子有一个例子,通过举办作品Blob存储上的JavaScript本身。
试图通过在Azure SDK采摘的node.js找到你正在寻找的JavaScript。 https://github.com/WindowsAzure/azure-sdk-for-node –