gpt4 book ai didi

storage - 在服务器上组织数千张图像

转载 作者:行者123 更新时间:2023-12-02 06:27:02 27 4
gpt4 key购买 nike

我正在开发一个网站,该网站可能会发展到几千个用户,所有这些用户都会在服务器上上传最多十张图片。我想知道存储图片的最佳方式是什么。假设我有 5000 个用户,每个用户有 10 张图片,这给了我们 50000 张图片。 (我想将它们存储在 blob 的数据库中不是一个好主意;))

为每 100 个注册用户动态创建目录(总共 50 个目录,假设有 5000 个用户)并在那里上传他们的图片,这是一个好方法吗?命名约定“xxx_yy.jpg”(xxx 是用户 ID 和 yy 图片编号)可以吗?然而,在这种情况下,一个文件夹中有 1000 张 (100x10) 张图片,是不是太多了?

最佳答案

我很可能通过图像内容的哈希值来存储图像。例如,128 位 SHA。因此,我将用户上传的图像“foo.jpg”重命名为其 128 位 sha(可能以 64 为基数,用于统一的 16 字符名称),然后将文件的用户名及其 SHA 存储在数据库中。我可能还会添加引用计数。然后,如果有些人都上传相同的图像,它只会存储一次,当所有引用消失时,您可以将其删除。

对于实际的物理存储,现在您已经有了保证的统一命名方案,您可以将文件系统用作平衡树。您可以决定目录中最多需要多少个文件,并让平衡器移动文件来维护它,或者您可以想象完全填充的树是什么样子,并以这种方式存储文件。

此方案的唯一真正缺点是它将文件名与内容分离,因此数据库丢失可能意味着不知道任何文件的名称,但无论如何您都应该小心备份此类信息。

关于storage - 在服务器上组织数千张图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2336862/

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