使用azure保存上传的图像

时间:2014-07-29 13:37:23

标签: c# asp.net-mvc azure

我正在考虑将网站从标准网络服务器迁移到windows azure(第一次使用云)。目前我网站上的一些地方使用HttpContext.Current.Server.MapPath将图像保存到本地服务器路径。阅读云托管未包含在发布中的任何资产将在以后的出版物中丢失。如何保存这些类型的资产,以便它们在未来的发布中永远不会丢失?

2 个答案:

答案 0 :(得分:4)

您需要将它们存储在服务器上。

Azure有一个few storage options。我建议您将图像存储在天蓝色的blob存储中。

how to use blob storage to store files

的示例中有一个教程

使用blob存储非常简单,但首先需要进行一些设置。上面的链接显示了创建存储帐户的所有步骤,然后是存储blob的容器。一旦有了blob的容器,它就像文件系统一样。

linked tutorial,以下是如何将文件上传到blob存储:

// 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("mycontainer");

// Retrieve reference to a blob named "myblob".
CloudBlockBlob blockBlob = container.GetBlockBlobReference("myblob");

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

当你想再次下载它们时,你需要这样做:

// 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("mycontainer");

// Retrieve reference to a blob named "photo1.jpg".
CloudBlockBlob blockBlob = container.GetBlockBlobReference("photo1.jpg");

// Save blob contents to a file.
using (var fileStream = System.IO.File.OpenWrite(@"path\myfile"))
{
    blockBlob.DownloadToStream(fileStream);
} 

要获取连接字符串详细信息,您需要选择azure中的存储帐户,然后单击“管理访问密钥”按钮,该按钮会弹出一个包含存储帐户名称和访问密钥的窗口

答案 1 :(得分:2)

此外,您可以查看透明的Azure文件服务,其行为与标准文件系统相似(可以使用标准IO读取/ wirite文件功能) http://blogs.msdn.com/b/windowsazurestorage/archive/2014/05/12/introducing-microsoft-azure-file-service.aspx