成千上万的图像,我应该如何组织目录结构?(Linux)的

Mic*_*ICE 10 linux directory-structure

我收到了数千名用户在我的Linux服务器上上传的数千张照片,该服务器由1and1.com托管(我相信他们使用的是CentOS,但我不确定该版本).这是一个与语言无关的问题,但是,供您参考,我使用的是PHP.

我的第一个想法是将它们全部转储到同一目录中,但是,我记得不久前,在目录中可以删除多少文件或目录是有限制的.

我的第二个想法是根据用户的电子邮件地址对目录中的文件进行分区(因为这是我用于用户名的无论如何)但我不想在目录中遇到目录的限制....

无论如何,对于来自user@domain.com的图片,我打算这样做:

/images/domain.com/user/images...
Run Code Online (Sandbox Code Playgroud)

这样做是否明智,如果成千上万的用户说'gmail',或许我甚至可以更深入,就像这样

/images/domain.com/[first letter of user name]/user/images...
Run Code Online (Sandbox Code Playgroud)

所以对于mike@gmail.com来说......

/images/domain.com/m/mike/images...
Run Code Online (Sandbox Code Playgroud)

这是一个糟糕的方法吗?其他人在做什么?我也不想遇到太多目录的问题......


有关:

Joe*_*eda 27

我会做以下事情:

  1. 在每个图像进入时拍摄MD5哈希值.
  2. 在您跟踪这些事情的数据库中写下MD5哈希值.
  3. 将它们存储在目录结构中,您可以使用MD5哈希十六进制字符串的前几个字节作为目录名称.因此,如果哈希值为'abcdef1234567890',则将其存储为'a/b/abcdef1234567890'.

使用哈希还可以合并多次上传的相同图像.

  • 几条评论:1)用已知值加入哈希值.2)"树平衡"哈希进入文件夹结构.因此,取第一个(比如说)哈希的五个字符并将其设为文件夹,接下来的五个等等.因此,在任何给定的文件夹中,您永远不会有超过100,000个文件夹.以这种方式在文件夹结构中使用整个哈希. (2认同)