用于存储数百万张图像的文件夹结构?

2024-03-12

我正在构建一个网站,该网站正在查看轻松上传的数百万张照片(每个上传的图像都有 3 个缩略图),我需要找到存储所有这些图像的最佳方法。

我搜索并找到了存储为哈希的图像示例......例如......

如果我上传,coolparty.jpg,我的脚本会将其转换为 Md5 哈希,从而导致..

dcehwd8y4fcf42wduasdha.jpg

并存储在/dc/eh/wd/dcehwd8y4fcf42wduasdha.jpg但对于 3 个缩略图我不知道如何存储它们

问题..

  1. 这是存储这些图像的正确方法吗?

  2. 我将如何存储缩略图?

  3. 在 PHP 中,使用上述方法存储这些图像的示例代码是什么?


我如何使用文件夹结构:

  • 我正在上传照片,然后按照您所说的移动它:

    $image = md5_file($_FILES['image']['tmp_name']);
    // you can add a random number to the file name just to make sure your images will be "unique"
    $image = md5(mt_rand().$image);
    $folder = $image[0]."/".$image[1]."/".$image[2]."/";
    
    // IMAGES_PATH is a constant stored in my global config
    define('IMAGES_PATH', '/path/to/my/images/');
    // coolparty = f3d40fc20a86e4bf8ab717a6166a02d4
    $folder = IMAGES_PATH.$folder.'f3d40fc20a86e4bf8ab717a6166a02d4.jpg';
    // thumbnail, I just append the t_ before image name
    $folder = IMAGES_PATH.$folder.'t_f3d40fc20a86e4bf8ab717a6166a02d4.jpg';
    // move_uploaded_file(), with thumbnail after process
    // also make sure you create the folders in mkdir() before you move them
    
  • 我确实相信这是基本方式,当然,您可以将文件夹结构更改为更深的文件夹结构,就像您所说的,如果您将拥有数百万张图像,则使用 2 个字符。

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

用于存储数百万张图像的文件夹结构? 的相关文章

随机推荐

  • Java/Mysql 服务器程序中的电子邮件帐户密码存储

    我处于一个棘手的境地 我正在编写一个应用程序 使用我公司的电子邮件帐户向客户发送电子邮件 这里的问题是我必须拥有该帐户的密码才能使服务器上的邮件服务从该帐户发送电子邮件 我知道密码永远不应该以纯文本形式存储 尤其是用于重要电子邮件帐户的密码
  • Vim netrw 询问“按 ENTER 或键入命令继续”

    我注意到 当我开始新的一天并打开 vim 然后使用 Exp 时 我收到 按 ENTER 或键入命令继续 提示 通常这会在执行外部命令时显示 我不记得 Exp 过去这样做过 而且 第一次使用netrw时才会出现提示 虽然微不足道 但我觉得这很
  • 如何在 Stata 中查找并替换字符串变量的一部分?

    我正在使用一个基本上是 URL 的变量 所以观察结果包括像这样的值 www google com https www google com https yahoo movies com 我正在尝试创建一个 do 文件以将一堆这些文件导入到
  • 使 toPrimitive 转换取决于上下文[重复]

    这个问题在这里已经有答案了 我希望一个对象在数字上下文中返回一个值 在字符串上下文中返回一个完全不同的值 以下不起作用 foo toString function return string valueOf function return
  • Activity 已泄漏窗口

    在我的启动屏幕中 我做了它 以便它检测 wifi 或 3g 是否启用 如果不是 则会出现一个对话框屏幕提示用户退出并打开其中一个 如果它打开 则代码将继续 我的 logcat 中不断收到有关我的活动有泄漏窗口的错误 我不知道如何解决这个问题
  • 如何检测访问您网站的用户所在的国家和城市?

    如何检测访问您网站的用户的原籍国 我在我的网站上使用 Google Analytics 分析 可以看到我的用户来自世界不同地区 但在我的应用程序中 我想根据国家 地区甚至城市提供一些额外的定制 是否可以从浏览器中检测到此信息 这是一个 Py
  • 如何在 Steam WebAPI 中获取应用程序的价格?

    是否可以通过 WebAPI 从 Steam 获取游戏的价格 目前 我们有 API 调用 这意味着我们可以使用JSON http php net manual en book json php for it Appid 57690 海岛大亨
  • Java 日期格式到 JavaScript 日期格式

    我希望能够转换 Java 日期格式字符串 例如日 月 年 07 06 2009 转换为 JavaScript 日期格式字符串 例如dd mm yy 2009 年 7 月 6 日 有没有人以前做过这个 或者知道我在哪里可以找到一些已经做到这一
  • 如何以轻松的方式实现身份验证?

    我正在使用 python 在网络应用程序谷歌应用程序引擎上构建图片日记 用户可以注册并将照片发布到他们的日记中 另外 我正在尝试尽可能地遵循 REST 架构 Web 应用程序的身份验证方案基于以下形式 1 从前端发布用户名 密码2 认证成功
  • 如何向水晶报表中的子报表发送参数

    使用VS 2008 我有两个存储过程 一个用于获取主报告的数据 另一个用于获取子报告的数据 并且两个 SP 使用相同的参数 QuoteID 我已使用 ReportDocument 将参数发送到主报告 但我不知道如何向子报表发送参数 我使用报
  • 无法将序列乘以“float”类型的非 int 错误?

    我正在尝试做一个简单的计算 稍后将在数组上完成 并得到上述错误 无法将序列乘以 float 类型的非 int 8 99 math log 1 0 5 1 2 87 方括号将结果转为 math log 1 0 5 1 2 87 到具有单个元素
  • 如何让 Google Compute Engine 服务器休眠?

    我想使用 GCE 服务器和 VNC 来运行我编写的一些桌面程序 但是 我不想让 GCE 服务器一直运行 以节省金钱 并且我希望保留 VNC 桌面的设置 以节省时间 完成此任务的最简单方法似乎是以某种方式休眠 GCE 实例 有没有办法从脚本或
  • Java 中的包和 C++ 中的库之间有区别吗?

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 有没有办法配置 PuTTY 或其他终端以在下一个输出到 stdout 时闪烁任务栏?

    我专门寻找 PuTTY 的解决方案 但也对其他终端模拟器感兴趣 例如 Gnome Terminal 我的想法是 如果我开始一个tar zxvf为了能够在终端模拟器上设置触发器 将其最小化 然后在下一次输出到 stdout stderr 时
  • 检查 Flask 中 Jinja2 内的变量类型

    我创建的模板文件包含以下内容 if type a 1 b 2 is dict print Oh Yes else print Oh No endif 然后 Jinja2 回应说 TemplateAssertionError no test
  • 是否可以使用Go编译器为其他操作系统分发可执行文件?

    我目前正在Mac OS X上工作 现在我需要构建一个 exe文件 以便Go程序可以在Windows上运行 那么问题来了 如何在 MacOS amd64 下构建 Win X86 的可执行文件 或者不可能这样做吗 如果你不使用 CGo 而使用纯
  • 使用或不使用 C++0x 功能 [重复]

    这个问题在这里已经有答案了 可能的重复 您今天使用 C 0x 的情况如何 https stackoverflow com questions 1754397 how are you using c0x today 我正在与一个团队合作开发一
  • Websocket Java 服务器。不发送消息也不接收消息

    我正在尝试制作一个 Java WebSocket 服务器 没有什么真正复杂的 只是一个丑陋的小服务器 用于使用标准定义的 api 从浏览器尝试 websocket 我一直在阅读协议的规范 它非常简单 我已经握手了 显然它正在起作用 我用Ja
  • 附加分配给特定分区的 KafaConsumer

    如何将 python 消费者脚本附加到特定的 kafka 分区 在运行消费者脚本的两个实例 如下所示 时 每个实例都会随机选择一个分区 然后按预期消费 打印该特定分区的所有消息 但由于我需要将这些消息输出到磁盘上名为本地文件的分区 因此将脚
  • 用于存储数百万张图像的文件夹结构?

    我正在构建一个网站 该网站正在查看轻松上传的数百万张照片 每个上传的图像都有 3 个缩略图 我需要找到存储所有这些图像的最佳方法 我搜索并找到了存储为哈希的图像示例 例如 如果我上传 coolparty jpg 我的脚本会将其转换为 Md5