我收到了数千名用户在我的Linux服务器上上传的数千张照片,该服务器由1and1.com托管(我相信他们使用的是CentOS,但我不确定该版本).这是一个与语言无关的问题,但是,供您参考,我使用的是PHP.
我的第一个想法是将它们全部转储到同一目录中,但是,我记得不久前,在目录中可以删除多少文件或目录是有限制的.
我的第二个想法是根据用户的电子邮件地址对目录中的文件进行分区(因为这是我用于用户名的无论如何)但我不想在目录中遇到目录的限制....
无论如何,对于来自user@domain.com的图片,我打算这样做:
/images/domain.com/user/images...
这样做是否明智,如果成千上万的用户说'gmail',或许我甚至可以更深入,就像这样
/images/domain.com/[first letter of user name]/user/images...
所以对于mike@gmail.com来说......
/images/domain.com/m/mike/images...
这是一个糟糕的方法吗?其他人在做什么?我也不想遇到太多目录的问题......
有关:
目录中有多少文件太多了?
适用于约250,000张图像的最佳Web文件夹结构
如何在文件系统中存储图像
管理大量文件的提示?
Joe Beda.. 27
我会做以下事情:
在每个图像进入时拍摄MD5哈希值.
在您跟踪这些事情的数据库中写下MD5哈希值.
将它们存储在目录结构中,您可以使用MD5哈希十六进制字符串的前几个字节作为目录名称.因此,如果哈希值为'abcdef1234567890',则将其存储为'a/b/abcdef1234567890'.
使用哈希还可以合并多次上传的相同图像.
我会做以下事情:
在每个图像进入时拍摄MD5哈希值.
在您跟踪这些事情的数据库中写下MD5哈希值.
将它们存储在目录结构中,您可以使用MD5哈希十六进制字符串的前几个字节作为目录名称.因此,如果哈希值为'abcdef1234567890',则将其存储为'a/b/abcdef1234567890'.
使用哈希还可以合并多次上传的相同图像.