我心中有一个问题,就是最好使用blob,二进制等数据类型直接将数据保存在数据库中,或者通过维护文件夹结构来保存paperclip存储图像的方式,只保留数据库中的路径是标准的
答案 0 :(得分:1)
将图片存储在数据库中有助于保持数据同步(如果手动更改文件夹名称,该怎么办?)。然后它可以节省你为记住在数据库本身之外备份数据的小小努力。 另一方面,从数据库中检索图像比从文件系统中检索图像要慢得多,而我似乎记得的数据库存储空间在Web服务器上更昂贵。
说,这只是一个选择问题。如果您决定使用数据库,可以使用gem来帮助您执行“paperclip_database”。
答案 1 :(得分:0)
有一些优点和缺点。
<强>优点强>
易于保护参照完整性。保存在DB中的图像(路径)与保存在文件系统中的实际图像之间没有差异。
数据库备份还包含图像。但是考虑到你必须备份应用程序数据。 (所以这不是一个好的论据)
更轻松的权利管理
<强>缺点强>
性能问题。必须从数据库加载每个图像。图像越多,这个论点应该得到的权重越大。
浏览器缓存/检查图像是否已更改(If-modified-Since)不再工作。 (但你可以自己实施检查)
(没有完整清单)
我的结论
在流量和图像较少的小型网站上,可以将图像存储在数据库中。在较大的网站上,我不会这样做。