【问题标题】:Apache Tomcat v7.0 is deleting images uploaded when reinitializedApache Tomcat v7.0 正在删除重新初始化时上传的图像
【发布时间】:2013-04-20 23:29:11
【问题描述】:

我正在开发一个将图像上传到 Apache Tomcat 服务器的 Web 应用程序。问题是每当我在服务器上进行更改时,它都会重新初始化,并且之前加载的图像会从服务器上的图像文件夹中删除。

我想知道在重新初始化服务器时是否可以进行任何配置来维护这些文件。

我在 localhost:8080 上运行它,版本是 Apache Tomcat v7.0。我也在 E​​clipse IDE 上开发它。

【问题讨论】:

  • 听起来您正在临时目录或(已部署)应用程序文件夹中创建图像文件夹。这两种方法都不适合永久存储。
  • 嗯..也许我是。我将更改我的存储目录
  • 始终将上传的文件存储在 webapps 目录之外。

标签: image apache tomcat


【解决方案1】:

cmet中基本已经给出了答案,这里稍微推理一下:

始终将上传的数据存储在 Web 应用程序之外的单独目录中。

其中一个原因正是您所发现的:应用程序的更新或重新部署将删除数据,否则。做备份是相当困难的。事实上,我建议不要让 webapp 目录完全可写入 tomcat,以缓解这个问题和下一个问题:

另一个问题是,您正在向隐式服务器端代码注入敞开大门:想象有人将 jsp 上传到您的 web 应用程序:这可能包含将静默执行的任意代码,除非您考虑过滤此类内容(没有人确实如此,并且没有人在安全管理器/沙箱中运行 tomcat。当然这是一种简化)

此外,当您动态更新您的 webapp 数据时,您无法判断部署后上传了哪些数据,因此如果稍后上传更新,您将无法轻松地将更新带回您的代码库:您基本上会拥有识别变化。

最后,您甚至不能假设 tomcat 总是解压缩 war 文件 - 有一个设置可以让 tomcat 直接从 war 文件中为应用程序提供服务,而无需将它们解压缩到 webapps。如果您不自己管理服务器,将平台更改为其他平台,或者将来 tomcat 的默认配置更改为此,您可能会感到困惑。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-04
    • 2021-08-07
    • 1970-01-01
    相关资源
    最近更新 更多