2010-07-21 63 views
1

這是我在網站上看到的一種模式,允許用戶上傳圖片等內容。爲什麼要根據散列對自動生成的文件進行排序?

例如,爲什麼http://upload.wikimedia.org/wikipedia/commons/7/70/Example.png而不是僅僅像http://upload.wikimedia.org/wikipedia/commons/Example.png

這有沒有實際的理由呢,還是僅僅是貨運邪教?

回答

3

許多文件系統不執行得非常好,當有文件數十萬在同一個目錄 - 它需要很長的時間在該目錄下查找文件。

爲避免此問題,文件分發到文件夾層次結構中。爲了獲得均勻的分佈,你需要散列文件名或內容 - 標識文件的東西 - 並使用散列的一部分來確定文件應放置在哪個文件夾中。這就是7/70的來源:它來源於在兩個步驟中散列的前綴,創建一個兩級層次結構。因此,文件分佈在256個不同的文件夾中,這意味着每個文件夾中的文件少得多,這反過來又提供了更好的文件系統性能。

0

有兩個明顯的原因:

  • 爲了避免負載了太多的文件到一個目錄
  • 它可以很容易地避免文件名衝突,不重新命名原始文件
相關問題