使用Spring Framework存储上传图像的最合适位置

时间:2016-06-24 22:15:12

标签: java spring image spring-mvc image-uploading

我目前正在为使用Java,Spring Framework和MySQL而没有ORM的本地公司开发Web应用程序。这是我第一次处理上传文件。

我的情况是系统的一部分允许管理员用户上传商店项目的图像。

目前我的所有资源(如图像)都是这样组织和定位的:(位于tomcat服务器ROOT的解包.war中)

/资源/ IMG /项目/
/资源/ IMG /项目/缩略图

但是我已经认识到,当部署Web应用程序并且用户上传图像时,它将存储在上述位置。因此,当我重新部署时,上传的图像将不会出现。

我的问题是,有更好的位置来存储这些图像吗?或者我错过了什么。我过去几个小时一直在研究,似乎还没有走得太远。我非常感谢能够提供一些知识的人。提前谢谢。

1 个答案:

答案 0 :(得分:1)

有很多选项可以存储文件。

MySQL :使用BLOB数据类型将它们存储在MySQL数据库中。优点是您可以在一个位置拥有所有持久性数据,这在备份时非常方便。另一方面,图像数据可能会使数据库迅速膨胀。

在文件系统中:将它们存储在文件系统中,例如在/ var / yourapp / uploaded-images中。您需要告诉您的应用程序在哪里可以找到该目录。有很多方法可以做到这一点:

  • 在MYSQL中创建配置表并将文件夹放在那里
  • 让您的网络容器/服务器提供该变量
  • 通过JNDI服务
  • ...

当该磁盘因大量数据崩溃时确保您有救援计划^^

单独的数据库 由于图像数据可能会使数据库快速膨胀,因此您可能希望为图像使用其他数据库。在许多架构中,二进制数据与" real"业务数据。

我想这些是您问题的典型解决方案。但是,没有标准的建议选择什么取决于你没有提供或不能提供的事实:

  1. 图像业务关键(技术图纸)
  2. 图像尺寸(8kB JPEG与200 MB原始图像)
  3. 您的用户有哪些需求,他们是谁(SaaS与小型内联网应用程序)
  4. ......更多;)
  5. 无论你选择什么,它都比在爆炸战争中存储文件更好:)