我应该把我上传的图像放在java应用程序的服务器上?

时间:2014-03-29 07:41:21

标签: java tomcat file-upload struts

我在eclipse中有项目结构,如下所示(使用struts)。我必须在 WebContent / images 中上传大量项目图片。图像的体积可以随着时间的推移而增加到10000到15000左右。我的问题是,每次我在服务器上部署war文件时,旧数据都会被覆盖,并且所有上传的图像都将消失。那么实现这个上传的最佳方法是什么呢。我想到的是在机器上创建一个seprate images文件夹,并在我的服务器目录中创建一个sym-link链接。但是,如果有更好的选择,或者即使有人可以在我现有的解决方案上添加一些评论,那也会更好。

Project Structure

3 个答案:

答案 0 :(得分:4)

将图像存储在您的计算机上。让我们说/ var / project / images。如果有多个服务器正在运行,则可以使用例如nfs或cifs添加挂载点。编写一个从该位置返回数据的图像servlet。只需将servlet添加到web.XML并使用/ resources / images / *作为servlet位置。然后,您可以使用路径信息在/ var / project / images /中找到图像。

答案 1 :(得分:1)

您可以使用linux文件系统的 Symbolic Links / alias direcory 来执行此操作[Windows中的文件夹快捷方式]

将所有图片保留在webapps之外,例如

usr/local/tomcat/itemimage/

并创建一个别名目录(Windows中符号链接式文件夹快捷方式)到webapps/<application>/image direcor y以链接usr/local/tomcat/itemimage/

答案 2 :(得分:0)

一个建议,如果您要获得大量图像数据,最好直接加载到Amazon S3存储桶中。 S3,是“高度耐用和可用的商店”,可用于可靠地存储应用程序内容,如媒体文件,静态资产和用户上传。它允许您卸载整个存储基础架构,并提供比仅在文件系统上存储文件更好的可伸缩性,可靠性和速度。