我正在構建一個需要存儲大量(250,000個)小文件(2MB到10MB)文件的應用程序。我想爲此使用Azure存儲,因爲其他相關係統都在Azure上。每個文件都有一個唯一的名字(可能是GUID)。我有點不確定BLOB是如何對應於文件的。既然我知道每個文件都將被唯一命名,我可以將每個blob的一個文件存儲在一個容器中嗎?在Azure存儲中存儲大量文件
圍繞着Azure存儲概念,我仍然抱有很高的期望,所以很抱歉,如果這太令人生氣了。
我正在構建一個需要存儲大量(250,000個)小文件(2MB到10MB)文件的應用程序。我想爲此使用Azure存儲,因爲其他相關係統都在Azure上。每個文件都有一個唯一的名字(可能是GUID)。我有點不確定BLOB是如何對應於文件的。既然我知道每個文件都將被唯一命名,我可以將每個blob的一個文件存儲在一個容器中嗎?在Azure存儲中存儲大量文件
圍繞着Azure存儲概念,我仍然抱有很高的期望,所以很抱歉,如果這太令人生氣了。
您可以將所有文件完全存儲在一個容器中。對容器中的斑點數量沒有限制,但存儲帳戶僅限於
100TB
500TB。
每個blob都有自己的存儲分區,所以這意味着您的文件將以可擴展的方式存儲在潛在的多個服務器中。
將所有內容存儲在一個容器中的唯一缺點是在一個目錄中列出文件名很困難。另外,像日期這樣的東西很難清除。如果您需要清除您的斑點,請考慮考慮可以一次清除容器的存儲策略。
HTH
我創建了一個類似的Blob存儲庫(2.6毫米的文件/ 3.9TB),所以我想我的經歷可能是你的一個很好的代表。但是,我應該說,這些文件中至少有一半是1K或更少,所以我的發現不會完全匹配。
無論如何,我的問題和你一樣:容器/文件夾組織)是否會影響檢索速度?然而,我的測試表明,無論我如何組織文件,檢索速度都幾乎相同。
對於您的情況,我只是簡單地使用一個沒有底層「文件夾」結構的容器,特別是因爲您要使用GUID作爲文件名。你永遠不會想列出所有的250K文件(除非你想做一個完整的「目錄」掃描),所以扁平化的組織方案似乎是最好的。
如果您想要定期滾動文件的子集(即在特定天數之後),則選擇替代方案(具有多個容器和/或文件夾)的唯一原因是。
每個文件都有一個數據庫中的條目,它的文件名,所以我不認爲我需要擔心列表。我認爲這也應該處理刪除問題,因爲我認爲我可以刪除一個blob,如果我有它的名字。 – 2014-10-08 15:12:40
正確,你只是一次刪除一個文件 – Igorek 2014-10-08 19:00:14
嘿@Igorek - 希望你不介意 - 我對你的答案做了一個小小的修改:Azure存儲賬戶現在增加到500TB。 :) – 2014-10-08 19:44:39