当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《成千上万的图像,我应该如何组织目录结构?(Linux)的》经验,为你挑选了1个好方法。

我收到了数千名用户在我的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'.

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



1> Joe Beda..:

我会做以下事情:

    在每个图像进入时拍摄MD5哈希值.

    在您跟踪这些事情的数据库中写下MD5哈希值.

    将它们存储在目录结构中,您可以使用MD5哈希十六进制字符串的前几个字节作为目录名称.因此,如果哈希值为'abcdef1234567890',则将其存储为'a/b/abcdef1234567890'.

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


几条评论:1)用已知值加入哈希值.2)"树平衡"哈希进入文件夹结构.因此,取第一个(比如说)哈希的五个字符并将其设为文件夹,接下来的五个等等.因此,在任何给定的文件夹中,您永远不会有超过100,000个文件夹.以这种方式在文件夹结构中使用整个哈希.
推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有