image.png (17.7 KB)
请问一下,我们使用的是aspose-pdf-java 19.10的版本。
有时候转换过程中,会生产大量的.tmp文件在/tmp目录中,会导致磁盘被占用满的情况。
这个临时文件什么情况下会生成?需要怎么处理?
image.png (17.7 KB)
请问一下,我们使用的是aspose-pdf-java 19.10的版本。
有时候转换过程中,会生产大量的.tmp文件在/tmp目录中,会导致磁盘被占用满的情况。
这个临时文件什么情况下会生成?需要怎么处理?
手机登记.pdf (35.3 KB)
2020_初中_语文_长期班_部编版_七年级_寒假_尖子班_第1讲_读懂·小说_教师讲义-15981.pdf (606.7 KB)
docSaveOptions.setFormat(DocSaveOptions.DocFormat.DocX);
docSaveOptions.setMode(0);
document.save(convertedFilePath, docSaveOptions);
以上是文件和代码片段。
另外跟文件应该没有关系,测试过多个不同文件。发现pdf 转换word文档,当 mode = 0 的情况时,才会生成临时文件aspose__.tmp类似的文件。
OS:Linux 4.15.0-45-generic #48-Ubuntu SMP Tue Jan 29 16:28:13 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
JDK:java version “1.8.0_201”
我们对票证进行了进一步调查,发现这不是错误。当使用系统字体时,我们使用java.awt,以下方法以这种方式工作(创建临时文件并跟踪它们):
java.awt.Font.createFont(int fontFormat,InputStream fontStream)
java.awt.Font.createFont(int fontFormat,java.io.File fontFile)
当程序正常退出时,JVM将使用ShutdownHook删除临时文件。
https://docs.oracle.com/javase/7/docs/api/java/lang/Runtime.html#addShutdownHook(java.lang.Thread)
Java跟踪器会阻止20个最后使用的临时文件,并且不允许在处理过程中将其删除。
Java不允许处理其他情况。
另外,请注意该方法:MemoryCleaner.clearAllTempFiles(); -从临时目录中仅删除位于子文件夹“ aspose_pdf”中或名称以“ aspose_”开头的文件。并且我们强烈建议您在转换任何文档的过程中不要清除临时文件,因为jvm可能会使Java进程崩溃。
在开始新文档转换之前,必须完成该过程并必须启动清理程序。
另外,您可以配置单独的temp文件夹,以便在启动主代码之前为aspose进程添加属性:
System.setProperty("java.io.tmpdir","D:/tmp");
setLicense();
...
如果使用了内存流来保存字体数据,java会将它们保存在temp文件夹中,并且在temp文件夹中使用掩码:“ +〜JF *** .tmp”。
我们使用掩码“ aspose_ *** .tmp”分隔由Aspose.PDF生成的临时文件。
web应用是无法做到停机调用ShutdownHook,这些大量的tmp文件应该怎么操作?
每次完成文档转换过程并保存结果时,您都可以在工作的Web应用程序期间清除临时文件,从而调用更干净的内部临时文件。
MemoryCleaner.clearAllTempFiles();