什么是存储和访问图像的最有效方法

我正在开发一个项目,它必须在服务器上存储数万个图像,并让用户访问它们。 我需要最有效的方法来存储这些图像并检索它们。 另外,我需要有关我应该选择哪种技术的信息。 我还没有开始这个项目。 所以,我在PHP w / CodeIgniter和Ruby on Rails之间思考。

该站点托管许多图像,这些图像仅由内容的作者上载,而不是由用户上载。

存储图像时,为它们生成校验和是有益的,这样您就可以检查图像是否重复并仅存储一个实例。

文件夹的组织很重要,因为文件系统就像相对数据库一样寻找图像,并且一个文件夹中的许多图像都是一个问题。 当您已经实现校验和时,您可以轻松地从校验和创建目录结构,例如MD5的前两个字符将是第一级子文件夹,而下两个字符将是第二级。 剩下的字符将是图像文件本身。 如果要允许重复项,校验和后可以为图像名称添加后缀。

关于存储 – 您应该有一个单独的静态内容服务器,具有快速和专业的Web服务器,如nginx或lighttpd,以忘记性能问题。 HDD应设置为RAIDarrays。

编辑:对于您的Web项目要求,只需在数据库中存储有关图像的信息,使用的框架与图像存储本身无关。

如果你使用PHP,你总是可以使用一些可用于图像存储和操作的软件,比如Gallery或phpThumb ,或者至少看看他们的代码,这样你就不必重新发明轮子了。 话虽如此,我确信必须存在类似的ruby库。

看一下,这是很常见的问题。 但这些链接可能对您有所帮助

  • PHP: 接受用户上传最佳实践!
  • Rails: http : //www.therailsway.com/2009/3/16/storing-your-files

您可能想要进一步研究

编辑#1:一个建议,只是不要将您的图像存储在数据库中。