我对 VFS 有疑问。我开发了一个 Web 应用程序来将部署包(zip 文件)的 URL 粘贴到文本区域中。您可以查看部署脚本并在最后部署应用程序。它在小型机器上的 tomcat 上运行。部署包大约 5-100 MB。我现在的问题是,临时目录会随着时间的推移而增长。 VFS 似乎没有从临时目录中删除文件。我为 tomcat 编写了一个启动脚本,用于清理 vfs 临时目录。但这一点也不好。
有没有办法在不关闭
FileSystemManager
的情况下通过 VFS 删除它们?临时目录似乎是一个缓存,但是当文件更改时它不会从内部网再次加载它。
我曾经设置过
((DefaultFileSystemManager) VFS.getManager()).setFilesCache(new NullFilesCache());
((DefaultFileSystemManager) VFS.getManager()).setCacheStrategy(CacheStrategy.ON_CALL);
但 VFS 似乎没有将临时目录视为缓存。我理解错了吗?
最佳答案
我通过修改我的核心项目以通过工厂获取 FileSystemManager 并通过我的 web 项目处理内部的 FileSystemManager 来解决这个问题( session 绑定(bind)和手动销毁方法)。在销毁时,我只是关闭一个 FileSystemManager 并创建一个新的。这会整理临时目录。
关于java - Apache Commonfs VFS 避免增加临时目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12622439/