我正在开发一个项目,该项目必须在服务器上存储数万个图像并让用户访问它们。我需要最有效的方法来存储这些图像并检索它们。另外,我需要有关我应该选择哪种技术的信息。我还没有开始这个项目。所以,我在PHP w / CodeIgniter和Ruby on Rails之间思考。
该网站托管了许多仅由内容作者上传的图片,而不是用户上传的图片。
答案 0 :(得分:5)
存储图像时,为它们生成校验和是有益的,这样您就可以检查图像是否重复并只存储一个实例。
文件夹的组织很重要,因为文件系统就像相对数据库一样寻找图像,并且一个文件夹中的许多图像都是个问题。当您已经实现校验和时,您可以轻松地从校验和创建目录结构,例如,MD5的前两个字符将是第一级子文件夹,而下两个字符将是第二级。剩下的字符将是图像文件本身。如果要允许重复项,校验和后可以为图像名称添加后缀。
关于存储 - 您应该拥有一个单独的静态内容服务器,其中包含快速且专业的Web服务器,如nginx或lighttpd,以免忘记性能问题。 HDD应设置为RAID阵列。
编辑: 对于您的Web项目要求,只需在数据库中存储有关图像的信息,使用的框架与图像存储本身无关。
答案 1 :(得分:1)
如果您使用PHP,您可以随时使用一些可用于图像存储和操作的软件,例如Gallery或phpThumb,或者至少看看他们的代码,这样您就不会不得不重新发明轮子。话虽如此,我确信必须存在类似的ruby库。
答案 2 :(得分:0)
看一下,这是很常见的问题。但这些链接可能对您有所帮助
您可能想要更多研究
编辑#1:一个建议,只是不要将你的图像存储在数据库中。