美文网首页
springboot内置tomcat在/tmp的临时文件被系统删

springboot内置tomcat在/tmp的临时文件被系统删

作者: Liekkasz | 来源:发表于2020-02-17 15:32 被阅读0次

    问题

    正常运行的springboot项目,突然出现文件上传异常

    java.io.IOException: The temporary upload location [/tmp/tomcat.7278393013633127856.2220/work/Tomcat/localhost/ROOT] is not valid

    原因

    因为上传的文件会缓存到本地磁盘,而缓存的路径就是上面的/tmp/tomcat.7278393013633127856.2220/work/Tomcat/localhost/ROOT,而错误提示明显显示文件不存在,排查后发现是Linux系统自动删除了tmp目录下的文件

    解决

    方案1

    重启应用,该方法只能临时解决问题。

    方案2

    增加服务配置,自定义baseDir。

    server.tomcat.basedir=/tmp/tomcat
    

    方案3

    配置不删除tmp目录下的tomcat

    $ vim /usr/lib/tmpfiles.d/tmp.conf
    
    # 添加一行
    x /tmp/tomcat.*
    
    重启服务
    $ systemctl restart systemd-tmpfiles-clean
    

    相关文章

      网友评论

          本文标题:springboot内置tomcat在/tmp的临时文件被系统删

          本文链接:https://www.haomeiwen.com/subject/bywbfhtx.html