在Azure存储中存储大量文件

时间:2014-10-08 14:41:17

标签: azure azure-storage azure-storage-blobs

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

仍然关注Azure存储概念,如果讨厌天真就道歉。

2 个答案:

答案 0 :(得分:4)

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

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

将所有内容存储在一个容器中的唯一缺点是在一个目录中列出文件名既困难又缓慢。而且,像日期这样的东西清除很难。如果您需要清除blob,请考虑考虑存储策略,您可以一次清除容器。

HTH

答案 1 :(得分:4)

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

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

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

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