我目前正在开发Spring MVC Web应用程序。我被告知要将SQl中的图像保存为blob,但根据我的理解,图像的数量会随着时间的推移而变大,这会因为大尺寸而减慢每个线程的处理时间。我想将文件存储在
中String uploadDir = request.getSession().getServletContext().getRealPath("/resources")+"/" +user.getTenantId()+ "/" +user.getUsername()+ "/";
我知道在重新部署war文件时会导致删除这些文件。我搜索了很多次,发现配置到整个应用程序之外的文件夹是件好事。这在本地计算机中不是问题。考虑当我为实时服务器实现它时,我如何在服务器中指定外部文件夹..?如果我这样配置,它也会安全吗?
答案 0 :(得分:2)
我知道在重新部署war文件时会导致删除这些文件。
好吧不要把文件放在那里!重新部署时没有可靠的方法来阻止文件被删除。
显而易见的解决方案是将文件放在其他位置。创建一个Web服务器可以写入的目录,并将上传的文件放在那里。
考虑当我为实时服务器实现它时,我如何在服务器中指定外部文件夹?
使用某种配置文件。
如果我这样配置,它也会安全吗?
这取决于。例如,它取决于
但即使您将上传内容放置在已部署的webapp目录中,也需要注意其中的大部分内容。
答案 1 :(得分:0)
在配置中定义uploadem路径soemwhere(例如,创建config.properties文件),在任何本地或生产环境中部署时,更改设置以反映文件目录的正确路径。
如果您需要将一个用户的文件与其他用户隔离,那么将文件放在资源目录中是不安全的。猜猜整个应用程序可以访问资源目录,因此任何用户都可以获取其他用户的al文件。这是将目录保留在Web应用程序目录之外的第二个原因。