在文件夹中存储数百万张图像的更佳解

时间:2011-05-29 21:48:31

标签: php linux image directory-structure

我计划根据照片的类型和尺寸将照片存储在文件夹中:

图像/ {的 OBJECT } / {的 OBJECT_ID } / {的 OBJECT_ID } _ {的 SIZE }。JPG

// FOLDERS LOOK LIKE THIS:
images/product/14/14_thumb.jpg
images/product/14/14_large.jpg
images/category/124/124_large.jpg
...

根据这种方法,我可以轻松地轻松到达任何物体:

function get_image($OBJECT, $OBJECT_ID, $SIZE){
    ...
}
// get image
get_image('product', 14, 'large');

我认为这对我来说已经足够了,但我想确定......也许我错过了一些东西。

那你觉得怎么样?

4 个答案:

答案 0 :(得分:3)

这还不够好。
将ID分解为部分计数,每个部分将是目录级别的名称 例如,ID 445578可以存储在 /44/55/78/445578.jpg

/4/4/5/445578.jpg
大小可以是后缀,是的。

您需要这样做,因为您可以拥有超过32k的ID,但文件夹并不总是可以保留超过32k的文件。

答案 1 :(得分:1)

这绝对没有错!

答案 2 :(得分:1)

这有几个问题,取决于实际情况。

如果这些图片免费公开,那么唯一的参数就是当人们形成其他网站直接链接到您网站上的图片时使用的带宽。

如果这些图像不是免费的而不是公开的,那么就存在很大的问题。无论您选择哪种网址命名,如果可以在分析几个网址后进行预测,那么可以直接访问其余图像。

你应该看看你正在使用的脚本语言中的url重写。在您的编程中,您应该检查引用,身份验证,授权和配额。

关键是图像的物理位置与网址引用的位置不同。

答案 3 :(得分:1)

Nice answer here此链接可解决问题中的所有内容。