适合约 250,000 张图像的最佳 Web 文件夹结构

2024-04-18

我的网站将包含大约 200,000 张图像。每张图像将被存储 3 次:全尺寸、缩略图、更大缩略图。全尺寸图像约为 50Kb 至 500Kb。

普通技术:VPS 上的 Linux、Apache、MySQL、PHP。

存储这些内容以便通过浏览器快速检索和显示的最佳方式是什么?

我应该将所有内容存储在一个文件夹中吗? 我应该将全尺寸图像存储在 1 个文件夹中,将缩略图存储在另一个文件夹中吗? 我应该将图像存储在 1000 个文件夹中,并保留图像所在文件夹的索引吗?

感谢您的任何建议。 阿尔伯特.


我会使用三层或四层深度的分割目录结构,其想法是将所有文件均匀地分割到多个目录中,主要是为了方便维护和快速访问。

怎么做?有多种替代方案:

  • 取图像名称的第一个字符
  • 获取名称散列的第一个字符
  • 获取自 1970 年添加图片之日起的最后秒数
  • 获取数据库中图像 ID 的最后一个字符(如果存在)

假设我们有 IMG8993_full.jpg、IMG8993_thumb.jpg、IMG8993_smallthumb.jpg

那么我们可以有,例如:

/images/I/M/G/8/IMG8993:
IMG8993_full.jpg
IMG8993_thumb.jpg
IMG8993_smallthumb.jpg
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

适合约 250,000 张图像的最佳 Web 文件夹结构 的相关文章

  • 如何将目录路径转换为唯一的数字标识符 (Linux/C++)?

    我正在研究获取目录 文件夹 并派生某种形式的唯一数字标识符的方法 我研究了 字符串到哈希 方法 但是 鸽子洞原理 http www codinghorror com blog 2007 12 hashtables pigeonholes a
  • 使用 sed 和 pstree 显示正在使用的终端类型

    我一直在尝试仅显示用作名称的终端类型 例如 如果我使用 konsole 它会显示 konsole 到目前为止我一直在使用这个命令 pstree A s 输出这个 systemd konsole bash pstree 我有以下内容可以从该行
  • 如何在php中重写url?

    我有一些关于在 php 中重写 url 的问题要问 1 www test com index php name 123 至 www test com 123 2 www test com folder1 index php name 123
  • 从 PNG 图像中提取元数据

    我正在尝试从 PNG 图像格式中提取元数据 我正在使用这个库 http code google com p metadata extractor http code google com p metadata extractor 尽管它声称
  • 如何配置 apache 服务器与 HTTPS 后端服务器通信?

    我将 apache 服务器配置为反向代理 如果我将后端服务器指定为 HTTP 则它可以正常工作 那是 我将虚拟主机 443 配置为 ProxyPass primary store http localhost 9763 store Prox
  • Android 中的离屏绘图

    android 中是否可以像 Objective C 中的 imageContext 那样进行离屏绘图 如果有的话 请告诉我链接或某种提示 多谢 我相信您正在寻找Canvas http developer android com refer
  • 无法更改 php 会话 cookie 名称

    我将现有且成功运行的站点复制到新的开发服务器 新服务器上的登录现在已损坏 我追踪到虽然会话 cookie 已重命名 ini set session name DOMAIN1 浏览器继续将会话 cookie 存储为 PHPSESSID 当我从
  • time_t 最终的 typedef 是什么?

    我搜索了我的 Linux 机器并看到了这个 typedef typedef time t time t 但我找不到 time t定义 The 文章对此进行了一些阐述 底线是类型time tC 规范中不保证 The time tdatatyp
  • 不同 Perl 安装造成的混乱

    我尝试升级 Perl 却把我的电脑搞得一团糟 我目前运行的是 RHEL6 5 64 位 事情是这样的 我安装了 perl 5 10 1 并且运行良好 这是安装好的 我可以从百胜看到它 我想安装 Padre 一个 Perl IDE 但这至少需
  • 如何在Android中将图像文件转换为pdf文件

    我正在尝试在 Android 应用程序中将图像文件 jpg 转换为 pdf 文件 我用过itextpdf罐子和机器人文本罐 都不适合我 下面是使用时的代码itextpdf Document document new Document Str
  • 在 Kali (Debian) 中安装 mono-devel 时,软件包具有未满足的依赖关系

    我尝试安装 mono devel 并输入sudo apt get mono devel在终端中 但失败了 得到以下结果 apt get install mono devel Reading package lists Done Buildi
  • Linux 上的 Chrome - 查询浏览器以查看打开了哪些选项卡?

    我在 Ubuntu Linux 上运行 Chromium 开源 chrome 版本 我可以编写一个程序来查看我打开了哪些选项卡吗 我想编写一个程序来监控我在事情上花费了多少时间 是否有命令行程序 某种调用 chromium browser
  • 从 Linux 内核模块的文件描述符获取文件名/路径?

    在Linux内核模块中 有没有一种方法可以从文件名 路径中获取文件名 路径 unsigned int fd 我知道这个答案 如何从内核模块内的文件描述符获取文件名 https stackoverflow com questions 8250
  • 为 bash 脚本创建应答文件

    我想为别人的 bash 脚本创建一个应答文件 当您运行 bash 脚本时 第一次安装该软件时 系统会询问您 5 个问题 我用的是yes script命令并且有效 它会自动应答yes对所有问题 不过我还是想回答一下no对于最后一个问题 有办法
  • 通过 C 将线程固定到 cpuset 中的核心

    我有 cgroup cpuset set1 set1有2 5 8 我想将一个进程绑定到该 cpuset 然后将该进程中的一个线程固定到核心 4 cpuset 的名称 线程名称以及我应该将线程绑定到的核心位于 m 配置文件中 是否有任何 C
  • Wordpress 主题管理面板显示本地服务器中的致命错误

    我有一个 WordPress 项目 这里我们使用主题jupiter 当我在本地 XAMPP 服务器上设置它时 它的主题选项不起作用 这个问题出在我的电脑上 但在另一台电脑上却正常 My XAMPP是最新版本 它显示的错误 Fatal err
  • 无法使用 sysctl 更改每个进程的最大打开文件数

    我的实际极限是1024 ulimit a core file size blocks c 0 data seg size kbytes d unlimited scheduling priority e 0 file size blocks
  • 在 CentOS 6.4 上的 apache 2.0 虚拟主机中创建子域

    我需要在网络服务器上创建子域阿帕奇2 0 CentOS 6 4 PageSpeed Apc 我没有 DNS 服务器 我需要使用虚拟主机 我的代码 NameVirtualHost xx xx xx xx
  • 在 docker windows 上运行 linux 容器

    我在 Windows 10 机器上安装了 Docker for Windows 它要求我启用 HyperV 功能 一切都安装正确并且运行良好 虽然有一件事让我大吃一惊 我实际上能够在 docker windows 上运行 Linux 容器
  • 如何将多个域路由到多个节点应用程序?

    我习惯了典型的 Lamp Web 托管环境 您只需单击 cpanel 中的几个按钮 您的域就会被分区并映射到 htdocs 中的文件夹 我经常使用 Node js 但做同样的事情似乎并不那么简单 如果我有多个节点应用程序 并且我想将doma

随机推荐