如何在Azure中存储文件

3
我们每年需要存储大约50,000个文件。每个文件大小在0.1-5MB之间,对应于5GB - 250GB的范围。这些文件包括:jpg、avi、pdf、docx等多种格式。
我们过去将文件BLOBs存储在SQL Server中,但在这种情况下,我认为这不是最佳选择,因为数据库将在2年内变得非常巨大。
那么,什么是最好的数据存储方式呢?
我看到了很多不同的选项,无法确定从何处开始:
Azure 存储、Azure SQL 等。在新版本的SQL Server中还有一些混合版本可供选择。
2个回答

5
我使用以下方法来处理多个系统:
  • 文件存储使用Azure Storage。您可以创建多个容器和访问级别,以存储专有信息。
  • 静态内容使用Azure CDN从Azure Storage中提供服务。
  • 数据库引擎使用Azure DB。

在Azure DB中,我存储了文件的路径,并在我的应用程序中进行一些附加处理,以便构建最终URL以从中提供文件。这是因为CDN在自定义域上缺乏SSL支持。

如果您需要示例或更多信息,请告诉我。我正在机场等待,所以回答可能没有那么详细。


谢谢您的快速回复!我们目前使用SQL Server。如果我们选择使用建议的设置,这是否意味着我们需要迁移到Azure DB? - user194076
完全不是。Azure DB只是一种更便宜的选择,但您可以将文件位置的数据存储在SQL Server(本地或云)中,并使用Azure存储文件。 - Martin Noreke
好的。那么,这是否意味着我们可以获得文件的硬链接,例如:mywebsite.com/files/image.jpg? - user194076
我在数据库中存储类似于“files/image.jpg”的内容,同时也存储了容器以供查找。然后,我编写了一些代码来构建最终的URL:“http://mycdnurl.com/container/files.image.jpg”,以便在访问时使用。这使我能够在不同的端点上开发并访问相同命名的文件(图形等),以便在发布之前测试其功能。 - Martin Noreke
非常感谢Martin!让我试试看这是否是我们需要的。 - user194076
显示剩余2条评论

5
正如@Martin在他的回答中提到的那样,Azure存储是可行的,具体原因如下:
  • 访问独立于任何虚拟机、服务、数据库等。
  • 存储是持久的 - 在一个区域内进行三重复制,并可选择地进行地理复制。
  • 单个 blob 可达到 200GB,存储可扩展到 500TB。
Azure还提供了文件服务,它本质上是坐落在 blob 之上的 SMB 共享。
虽然 Azure 中有数据库服务(SQL 数据库服务和 DocumentDB),但您会发现这些服务并不是真正针对大型二进制数据存储进行优化的;它们更适用于元数据。您当然可以在每个服务中存储二进制数据,但需要担心存储限制。
您还可以通过虚拟机和附加磁盘(再次由持久性 blob 存储支持)来启动自己的数据库解决方案。虚拟机支持将多达32个1TB磁盘附加到给定的 VM 上,无论是普通 blob 还是基于“高级”SSD的 blob(每个高级磁盘支持最多5000 IOPS)。您选择哪种数据库解决方案完全取决于您;没有“最佳”解决方案。

谢谢您提供更多信息来补充我的回答。 :) - Martin Noreke
我们并不需要像超级耐用的高可用性之类的东西。只需要一些具有成本效益的东西。目前,我们在Azure上托管我们的网站,并使用SQL Server Entity Framework Code First。 - user194076
我猜我们会尝试使用Azure存储,看看它是否适合我们。谢谢David! - user194076
@user194076 - 没有所谓的“超级耐用” - 它要么耐用,要么不耐用。如果它不耐用(例如,您将其存储在本地临时存储中),那么一旦您的计算机重新启动或重新配置,它就会消失。 - David Makogon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接