【问题标题】:Storing lots of files in Azure Storage在 Azure 存储中存储大量文件
【发布时间】:2014-12-03 06:43:36
【问题描述】:

我正在构建一个需要存储大量 (250,000) 小 (2MB - 10MB) 文件的应用程序。我想为此使用 Azure 存储,因为其他相关系统都在 Azure 上。每个文件都有一个唯一的名称(可能是 GUID)。我有点不确定的是 BLOB 如何与文件对应。因为我知道每个文件都将被唯一命名,所以我可以/应该只将每个 blob 的一个文件存储在一个容器中吗?

我仍然对 Azure 存储概念深有体会,如果太天真了,我深表歉意。

【问题讨论】:

    标签: azure azure-storage azure-blob-storage


    【解决方案1】:

    您绝对可以将所有文件存储在一个容器中。容器中的 blob 数量没有限制,但存储帐户限制为 100TB 500TB。

    每个 blob 都有自己的存储分区,这意味着您的文件将以可大规模扩展的方式存储在可能的许多服务器上。

    将所有内容存储在一个容器中的唯一缺点是在一个目录中列出文件名既困难又缓慢。此外,通过日期之类的东西进行清除也很困难。如果您需要清除 blob,请考虑考虑一次可以清除容器的存储策略。

    HTH

    【讨论】:

    • 每个文件在数据库中都有一个带有文件名的条目,所以我认为我不需要担心列出。我认为这也应该处理删除问题,因为我假设我可以删除一个 blob,如果我有它的名字。
    • 正确,您只会一次删除一个文件
    • 嘿@Igorek - 希望你不介意 - 我对你的回答做了一点修改:Azure 存储帐户现在达到 500TB。 :)
    【解决方案2】:

    我创建了一个类似的 blob 存储库(2.6MM 文件 / 3.9TB),所以我认为我的经验可以很好地替代您的经验。但是,我应该说,这些文件中至少有一半是 1K 或更少,所以我的发现不会完全匹配。

    不管怎样,我和你有同样的问题:容器/文件夹组织)会影响检索速度吗?然而,我的测试表明,无论我如何组织文件,检索速度几乎相同。

    对于您的情况,我只使用一个没有底层“文件夹”结构的容器,特别是因为您将使用 GUID 作为文件名。您永远不会想要列出所有 250K 文件(除非您想要进行完整的“目录”扫描),所以扁平化组织方案似乎是最好的。

    选择替代方案(具有多个容器和/或文件夹)的唯一原因是如果您想定期滚动文件的子集(即,在一定天数之后)。

    【讨论】:

      猜你喜欢
      • 2012-05-20
      • 1970-01-01
      • 2016-08-18
      • 1970-01-01
      • 1970-01-01
      • 2018-02-01
      • 2015-06-16
      • 2015-06-27
      • 1970-01-01
      相关资源
      最近更新 更多