【问题标题】:Tomcat NIO and Sendfile cleaning up the file sendTomcat NIO 和 Sendfile 清理文件发送
【发布时间】:2012-04-13 22:45:02
【问题描述】:

我正在开发一个在线文档管理系统,用户可以将多个文档下载为一个 ZIP 文件。这些文件可能会变大以在内存中完全处理,因此在这种情况下,我们使用临时文件。然后使用 Http11NioProtocol 将该临时文件发送到客户端,并将 org.apache.tomcat.sendfile 设置为临时文件。问题是在将文件传输到客户端浏览器后,服务器被临时文件卡住了。

办公室。可以使用 deleteAfterExit 或某种 tempFileManager 但我正在寻找的是一种在文件完全传输时注册处理函数或具有某种可用于清理临时文件的回调函数的方法?

【问题讨论】:

    标签: java tomcat temporary-files sendfile


    【解决方案1】:

    如果您在 linux 上运行,即使传输尚未完成,您也可以安全地删除文件。您不能立即删除该文件,因为 tomcat sendfile 代码必须能够打开该文件,但您可以在一分钟后安全地删除该文件。

    【讨论】:

    • 这样做与使用 tempfileManager 注册文件并指定在设置下载后 1 分钟删除文件没有太大区别。我宁愿在下载完成后立即执行一些操作,而不希望文件在 x 分钟后可删除
    猜你喜欢
    • 2015-10-31
    • 2018-08-26
    • 2018-05-10
    • 2015-02-05
    • 1970-01-01
    • 2018-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多