springboot The temporary upload location is not valid
问题描述
springboot项目,已运行一段时间,某一天突然出现文件上传失败,发现报错如下:
The temporary upload location [/tmp/tomcat.4543961078644709426.8090/work/Tomcat/localhost/ROOT] is not valid
问题解析
该临时文件夹为springboot 内置tomcat保存上传文件的临时路径,该路径默认存在于/tmp下,因此会被linux机制在一段时间后删除,因此报错
解决方案
临时解决
重启即可(治标不治本)
使用自定义临时文件夹
配置文件:
server.tomcat.basedir
命令行:
java -jar boot.jar --server.tomcat.basedir=/userdefine_path
linux删除缓存文件配置
vim /usr/lib/tmpfiles.d/tmp.conf
# 添加一行, x 表示 exclude
x /tmp/tomcat.*
配置mutipartConfig
@Bean
MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
factory.setLocation("定义配置临时路径");
return factory.createMultipartConfig();
}
自有博客:https://blog.wudd.top/
那一天我二十一岁,在我一生的黄金时代。我有好多奢望。我想爱,想吃,还想在一瞬间变成天上半明半暗的云。后来我才知道,生活就是个缓慢受锤的过程,人一天天老下去,奢望也一天天消失,最后变得像挨了锤的牛一样。可是我过二十一岁生日时没有预见到这一点。我觉得自己会永远生猛下去,什么也锤不了我。