当前位置: 首页 > 面试题库 >

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

刁文光
2023-03-14
问题内容

我正在由1and1.com托管的Linux服务器上,成千上万的用户上传了数千张图片(我相信他们使用的是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...

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


问题答案:

我将执行以下操作:

  1. 对每幅图像进行MD5哈希处理。
  2. 在要跟踪这些内容的数据库中写入该MD5哈希值。
  3. 将它们存储在目录结构中,在该目录结构中,您将MD5哈希十六进制字符串的前两个字节用作目录名。因此,如果哈希为“ abcdef1234567890”,则将其存储为“ a / b / abcdef1234567890”。

使用哈希还可以让您合并多次上传的同一张图片。



 类似资料:
  • 该书从5个方面阐述了80386的体系结构: 第I部分 - 应用程序 第II部分 - 系统编程 第III部分 - 兼容性 第IV部分 - 指令集 附录 上面的分类一方面取决于体系结构本身,一方面取决于使用这本书的不同方式。入下表所示,后面的2部分旨在作为参考手册来帮组那些致力于在80386上开发软件的程序员。前面的3部分则是理论说明,它们说明体系结构的用途,解释术语和概念

  • 主要内容:GWT Google Charts 组织结构图 配置,GWT Google Charts 组织结构图 示例以下是组织结构图的示例。 我们已经在《GWT Google Charts 入门程序》章节中看到了用于绘制图表的基本步骤。现在,让我们看一个组织结构图的例子。 GWT Google Charts 组织结构图 配置 我们使用OrgChart类来显示组织结构图。 GWT Google Charts 组织结构图 示例 输出结果为:

  • 本书分为三个主要部分,每部分包含关于一个特定领域的库,不过肯定也有一些重叠的地方。这种分类可以让你更容易地找到与你的任务相关的信息,也使得阅读本书时可以更方便地找到相关的主题。大多数情况下,每章讨论一个单独的库,但也有时会一章里讨论一小组的库。 排版及编码的风格尽量保持简单。在这方面有很多好的方法,我只是挑选了一种我认为大多数人会习惯的方式,这样可以更容易传递所要的信息。另外,本书的代码风格会通过

  • 例如,我有这样的代码 如何将“\on the”替换为replace eAll()?

  • ThinkPHP5.1 具备自动创建功能,可以用来自动生成需要的模块及目录结构和文件等。 快速生成模块 生成一个test模块的指令如下: >php think build --module test 表示自动生成test模块,自动生成的模块目录包含了config、controller、model和view目录以及common.php公共文件。 批量生成模块 如果需要批量生成多个模块的目录和文件,需

  • 本书结构 第二章首先会介绍一些Go的基本数据结构的实现,如slice和map。 第三章会介绍Go语言中的函数调用协议。 第四章分析runtime初始化过程。 第五章是goroutine的调度。 第六章分析Go语言中的内存管理。 第七章分析Go语言中一些高级数据结构的实现。 第八章是网络封装的实现 第九章讲cgo使用的一些技术 第十章是其它一些杂项 推荐的阅读方式 本书的写作基本上是按一个循序浅近的