问题
正常运行的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
网友评论