gpt4 book ai didi

c# - 仅根据用户名存储和检索大量头像?

转载 作者:太空宇宙 更新时间:2023-11-03 10:22:44 25 4
gpt4 key购买 nike

我想在文件系统中存储大量(数百万)个用户头像。但是文件必须在文件系统中均匀分布,以便它可以随着添加更多文件而扩展。

头像大小为 5-10KB。应用程序是 ASP.NET MVC (C#)

存储:

考虑以下这些唯一用户 ID:bob、mike、robert、johnson头像名称将是 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 Controller 操作,该操作将从物理位置获取头像并写入响应缓冲区

当前架构:

[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
}

我离这个远了吗?如果是,您将如何构建它?

我可以使用数据库中用户的用户标识(自动生成为新的 UUID),但在这种情况下,我必须将用户标识存储在我拥有用户名的所有表中

感谢阅读

最佳答案

我还没有见过这种创建文件夹结构的方法,但是,我觉得这很有趣。

假设您将有 100 万用户,那么 100 万用户 X 10kb 将接近 10GB,存储起来并不过分。

问题是,会有多少用户同时访问?如果数量很多,服务器传送这些文件的速度可能会变慢,因为服务器已经必须处理数百万次访问。

如果我必须为数百万用户做一个网站,我不会将头像和内容存储在我的应用程序服务器中,我会使用 CDN(内容分发网络)来存储图像,甚至获得专用服务器用于上传图片,例如 avatar.mydomain.com,所以我会通过 WCF 上传到这个域。

关于c# - 仅根据用户名存储和检索大量头像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32788656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com