0

我目前正在我的应用程序中构建一种允许用户为其个人资料提供图像的方法。

作为上传过程的一部分,我将创建几个不同版本的文件,以便在系统中的不同位置使用。

我不会将图像存储在数据库中,因为这对我来说没有意义。它们将由 IIS 提供服务,我还想以这样一种方式对其进行结构化,以便将来更容易将其迁移到 CDN。

我目前的计划是为每个用户分配一个 GUID 或类似的唯一值,这些值将作为其个人资料信息的一部分存储在数据库中,例如:

ProfileId 1 - UserCode 628B3AF30B0F48EA8D61778084FC73C3

当用户上传他们的个人资料图片(或其他数据)时,我将使用代码在 Web 服务器上创建一个目录,例如:

"~/userimages/628B3AF30B0F48EA8D61778084FC73C3/"

然后我将在这里存储一些图像,例如:

"~/userimages/628B3AF30B0F48EA8D61778084FC73C3/profilephoto160x160.jpg"
"~/userimages/628B3AF30B0F48EA8D61778084FC73C3/profilephoto25x25.jpg"

然后,这应该使重新创建正确图像的有效 url 的过程既不会在任何讨厌的地方硬编码(如数据库中的个人资料图像 url),也应该使其成为可预测的过程,例如:

var profileImgurl = BaseImageFolder + profile.UserCode + "profilephoto160x160.jpg"

我没有使用 CDN 的经验,想知道我是否会在以后/如果它被迁移时产生任何我将难以解决的问题?

有没有人看到我没有想到的这种方法的任何讨厌的问题?

据我所知,像谷歌这样的人有类似的方法。

4

0 回答 0