Java Tomcat NIO和Sendfile清理文件发送

Java Tomcat NIO和Sendfile清理文件发送,java,tomcat,temporary-files,sendfile,Java,Tomcat,Temporary Files,Sendfile,我正在开发一个在线文档管理系统,用户可以将多个文档作为一个ZIP文件下载。这些文件可能会变得很大,以便在内存中完全处理,因此在这种情况下,我们使用临时文件。然后使用Http11NioProtocol将该临时文件发送到客户端,并将org.apache.tomcat.sendfile设置为临时文件。问题是在将文件传输到客户端浏览器后,服务器被临时文件卡住 Ofc。可以使用deleteAfterExit或某种类型的tempFileManager,但我要寻找的是一种在文件完全传输时注册处理函数的方法,或

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


Ofc。可以使用deleteAfterExit或某种类型的tempFileManager,但我要寻找的是一种在文件完全传输时注册处理函数的方法,或者使用某种类型的回调函数来清理临时文件?

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

这样做与使用tempfileManager注册该文件并指定在设置下载后1分钟删除该文件没有多大区别。我宁愿在下载完成后立即执行一些操作,也不希望文件在x分钟后可以删除