保存和获取文件 Azure BLOB 存储或 SQL 服务器的更好更快的方法是什么?

What is the better and faster way to save and get files Azure BLOB storage or SQL SERVER?

[背景] 现在我正在创建WCF来保存和获取我们大学的文章。

我需要保存这些文件的文件和元数据。 我的 WCF 每天需要被 1000 人使用。 存储将包含大约 60000 篇文章。

我有三种不同的方法。

  1. 我可以在 sql 服务器中保存元数据(文件名、文件类型)以创建唯一 ID)并将文件保存到 Azure BLOB 存储中。
  2. 我可以将元数据和数据保存到 sql 服务器。
  3. 我可以将元数据和数据保存到 Azure BLOB 存储中。

选择什么方式,为什么? 如果您提出自己的解决方案,那就太棒了。 P.S。他们都使用 Azure。

我建议使用选项 1 - 将元数据保存在数据库中,但将文件保存在 blob 存储中。这是我的理由:

  1. Blob 存储仅用于此目的。截至今天,一个帐户可以容纳 500TB 的数据,每个 blob 的大小可以达到 200 GB。所以 space 不是限制。
  2. 与 SQL 服务器相比,存储在 blob 存储中非常便宜。
  3. 我建议将元数据存储在数据库中的原因是因为 blob 存储是一个简单的对象存储,没有任何查询功能。因此,如果您想搜索文件,您可以查询您的数据库以查找文件,然后 return 文件 URL 给您的用户。

但是请记住,因为这些(数据库服务器和 blob 存储)是两个不同的数据存储,您将无法实现事务一致性。创建文件时,我建议先将文件上传到 blob 存储中,然后再在数据库中创建一条记录。同样,在删除文件时,我建议先从数据库中删除记录,然后再删除 blob。如果您担心有孤立的 blob(即数据库中没有匹配记录的 blob),我建议 运行 一个后台任务来找到孤立的 blob 并将其删除。