我正在编写一个存储在Azure VM上的MVC 5 Internet应用程序。在这个互联网应用程序中,用户可以上传文件,例如公众可以通过网址访问的图像和视频。
我的问题是:
我是否应将此上载的数据存储在与Azure VM位于同一位置的Azure Block Blob容器中,或者让用户将此数据上传到VM存储的硬盘驱动器,然后可以通过URL访问?
使用Blob存储或在VM上存储文件是否更便宜?
例如,如果我在Blob存储上和Azure VM上存储了以下文件,并且每次访问和查看100次,那会更便宜吗?
此外,除了存储和交易成本之外,还应考虑其他因素吗?
提前致谢。
答案 0 :(得分:2)
在这种情况下,您似乎应该为上传的blob创建一个单独的容器并将其标记为public。您的应用应将用户上传的文件保存到此公共容器中。然后,用户可以直接通过blob的URL访问容器中的文件。
此建议有几个原因:
答案 1 :(得分:1)
只是为了说清楚。高级存储对于原始电子邮件中描述的工作负载并不理想。高级存储专为需要保证IOPS和低延迟(如数据库应用程序)的Azure虚拟机工作负载而设计。成本将高于将数据存储在块blob中。块Blob也更适合于媒体文件服务。
答案 2 :(得分:0)
首次配置VM时,所有Azure VMS至少有两个磁盘 - 操作系统磁盘和临时磁盘。
您不会将数据存储在临时磁盘上,因为它仅用于临时存储;将VM移动到另一台物理计算机时,该驱动器上的数据将丢失,这可能发生在升级,修补程序以及Windows Azure检测到您运行的节点出现问题时。我也不建议在OS磁盘上存储数据。操作系统和临时磁盘都具有最大大小,您将在数据大小增加时达到最大大小限制。
我不知道您的确切要求,但在我看来,您将需要使用Azure Blob存储或将更多数据驱动器附加到您的VM并在那里保留数据。
答案 3 :(得分:0)
最简单的方法是使用blob存储来存储您的文件。 Atul Sikaria指出了优点和缺点,但我们还需要记住,有一个选项可以使用带有SSD磁盘的高级存储。与标准blob存储相比,它是非常有效的选择。