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