问题很简单:在集群的Spring MVC环境中存储上传文件的最佳方法是什么?
示例:假设我正在编写社交网络,我必须上传我的个人资料图片。然后,用户将至多有一个与他的个人资料相关联的图像。
然后,解决方案可以是将一个blob列添加到数据库中的users表中 - 我认为这在群集环境中很好(比包含大量图像的文件夹更容易扩展数据库)。这是真的吗?如何在JPA(Hibernate和PostgreSQL)环境中实现这一目标?我看到有@Lob
注释,但我应该使用什么类型的变量? byte[]
?
另一种解决方案是将它们存储在硬盘上。存储这些图像的最佳途径是什么?在webapp
文件夹中?在类路径?在Spring上下文之外的另一个文件夹中?
非常感谢你的帮助。
更新:我忘了说一个重要的细节。本网站的管理仪表板(CMS /后端)将用PHP编码(我知道,我知道......),而前端将用Java Spring(MVC)编码。数据库全部由java部分(JPA)管理。无论最终的选择是什么,都必须符合这一要求。
答案 0 :(得分:0)
我宁愿不把它存放在DB中。最好的地方是静态文件(或CDN)的一些服务器。
如果你真的需要,你可以存储就像Lob一样,但我认为出于性能可扩展性的原因这是一个坏主意。
更重要的是,数据库似乎比简单的内容交付网络更昂贵。