我正在处理用户上传大量图片的应用程序,我必须显示那些图片网页
存储和检索图像的最佳方法是什么。
1)数据库 2)文件系统 3)CDN 4)JCR 或其他什么
我所知道的是 数据库:从数据库保存和检索图像将导致对数据库的大量查询,并且每次都会将blob转换为文件。我认为这会降低网站性能
FileSystem:如果我将图像信息保存在文件系统中的数据库和图像文件中,则会出现同步问题。就像我对数据库进行备份一样,我们确实备份了images文件夹。如果有数百万个文件,它将消耗大量的服务器资源 我在这里读到它 http://akashkava.com/blog/127/huge-file-storage-in-database-instead-of-file-system/
另一个选择是CDN和JCR
请建议最佳选择
此致
答案 0 :(得分:1)
如果您只计划部署到一台服务器(即不是负载均衡器后面的几台服务器),或者所有服务器都可以访问共享文件系统,那么使用文件系统只是一个选项。除非您在应用程序服务器中缓存频繁访问的文件,否则它也可能效率低下。
将数据库中的实际二进制数据存储起来可能有些过分,而不是数据库最好的数据,这是对的。
我建议组合:
数据库和共享的公共可访问存储的这种组合可能是一个很好的组合,为您提供两全其美的优势。数据库还意味着如果您将来需要移动/更改或批量删除图像(可能删除正在删除其帐户的作者上传的所有图像),您可以执行有效的数据库查询以收集元数据,然后更新/更改数据库表示存在的S3位置存储的图像。
您说要在网页上显示图像。这种组合意味着应用程序服务器可以有效地查询数据库以查看要显示的图像(包括限制作者,分页等),然后生成包含引用正确CDN路径的图像的视图。这意味着在将动态内容(显示图像的页面)与静态内容(图像本身通过CDN)结合起来时,查看图像也非常有效。
答案 1 :(得分:0)
CDN可能是您的不错选择。
您可以将图像链接与数据库中的图像信息一起存储。