我想在文件系統中存儲大量(百萬)用戶頭像。 但是文件必須在文件系統中均勻分佈,以便隨着更多文件的添加而擴展。僅基於用戶名存儲和檢索大量頭像?
頭像大小爲5-10KB。 該應用程序是ASP.NET MVC(C#)
儲存:
考慮以下這些唯一的用戶ID:鮑勃,麥克羅伯特約翰遜 的頭像名字將bob.jog,mike.jpg, robert.jpg,johnson.jpg
HTML元素來呈現化身:
<img class="avatar" src="www.xyz.com/getAvatar?user=bob" />
<img class="avatar" src="www.xyz.com/getAvatar?user=mike" />
這將去getAvatar控制器動作,將得到的物理位置的頭像和寫響應緩衝
當前的架構:
[HttpPost]
public ActionResult SaveAvatar(HttpPostedFile avatarImage, string user)
{
//get MD5 hash of user (bob=9F9D51BC70EF21CA5C14F307980A29D8)
//split MD5 hash string to get the folders (\9F\9D\51\BC\)
//save avatar at path <file_server>\images\9F\9D\51\BC\bob.jpg
}
[HttpGet]
public ActionResult GetAvatar(string user)
{
//get MD5 hash of user (bob=9F9D51BC70EF21CA5C14F307980A29D8)
//find the file location from MD5 hash (9F\9D\51\BC\)
//return <file_server>\images\9F\9D\51\BC\bob.jpg
}
難道我的路要走對此有何看法? 如果是的話,你會如何設計這個?
我可以使用用戶的用戶ID(如新的UUID自動生成)的數據庫,但在這種情況下,我必須存儲的用戶ID在我所有的表,我有用戶名
感謝您閱讀
化身將被存儲並從單獨的服務器提供服務。會有很多訪問。 100位用戶將同時訪問該頁面。我更關心的是架構,而不是我如何服務他們,這些可以改進或改變。但是改變架構將在以後更加困難。 – kheya