我们目前在IIS服务器中托管MVC webapp。我们可以选择最终用户上传图像/ pdf文件。为了存储它们,我们可以使用代码这样的东西..
if (file.ContentLength > 0)
{
var fileName = Path.GetFileName(file.FileName);
var path = Path.Combine(Server.MapPath("~/App_Data/Images"), fileName);
file.SaveAs(path);
}
现在我们计划在Azure上托管这个。 如果我们在Azure中托管,上述文件存储机制是否有效?或者我们需要 在文件存储机制中进行更改(因为Azure文件系统不同)。
答案 0 :(得分:2)
如何部署到Azure取决于您,并且有很多方法可以做到(我不打算以任何特定的方式提出建议)。客观地说:
虚拟机
云服务
网络应用
Azure存储
答案 1 :(得分:1)
如果您使用azure VM并在该服务器的IIS中托管该站点,那么方法将是相同的。您将拥有一个永久磁盘,并且文件可以存储在那里。但如果您有更多文件上传等等,这不是一个可行的解决方案。
如果你要使用azure app service web apps或web角色,那么这个选项是不可行的,因为该实例中的存储将受到限制,如果实例在webroles的情况下回收或重新启动,并且在web应用的情况下被删除那些数据将会消失。
Azure存储提供blob存储,这对于存储文档,图像,视频等二进制文件非常有用。Azure存储很便宜,并且具有高可用性和可靠性。
在你的asp.net MVC应用程序中,你必须添加azure存储SDK作为nuget参考,然后使用上面提到的上传/下载方法。
如果您在VM中托管您的网站,也可以使用azure blob存储。
https://azure.microsoft.com/en-in/documentation/articles/storage-dotnet-how-to-use-blobs/