这篇文章主要为大家展示了“springboot如何配置临时文件存储目录”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“springboot如何配置临时文件存储目录”这篇文章吧。
场景:
上传文件功能报错,然后排查日志。
报错日志:
The temporary upload location [/tmp/tomcat.7957874575370093230.8088/work/Tomcat/localhost/ROOT] is not valid
在linux系统中,springboot应用服务再启动(java -jar 命令启动服务)的时候,会在操作系统的/tmp目录下生成一个tomcat*的文件目录,上传的文件先要转换成临时文件保存在这个文件夹下面。
由于临时/tmp目录下的文件,在长时间(10天)没有使用的情况下,就会被系统机制自动删除掉。所以如果系统长时间没有使用到临时文件夹,就可能导致上面这个问题。
1.创建临时文件夹:
mkdir -p /tmp/tomcat.7957874575370093230.8088/work/Tomcat/localhost/ROOT
后面可能还会出现这种情况
2.application.properties重新配置一个文件目录,然后重启项目
# 存放Tomcat的日志、Dump等文件的临时文件夹,默认为系统的tmp文件夹 server.tomcat.basedir=/data/apps/temp
3.配置类配置临时文件存储目录
@Bean MultipartConfigElement multipartConfigElement() { MultipartConfigFactory factory = new MultipartConfigFactory(); factory.setLocation(tmepPath); return factory.createMultipartConfig(); }
项目在线运行了一段时间后,上传文件时抛出如下异常:
The temporary upload location [/tmp/tomcat.*.80/work/Tomcat/localhost/ROOT] is not valid
经过查找,采用了如下的解决方式【修改临时文件的位置】
在application.yml 文件中添加
location: tempDir: /opt/location/tempDir #此处为*unix的系统相关位置
@Configuration public class MultipartConfig { @Value("${location.tempDir:/opt/tempDir}") private String tempDir; @Bean MultipartConfigElement multipartConfigElement() { MultipartConfigFactory factory = new MultipartConfigFactory(); File tmpDirFile = new File(tempDir); // 判断文件夹是否存在 if (!tmpDirFile.exists()) { tmpDirFile.mkdirs(); } factory.setLocation(tempDir); return factory.createMultipartConfig(); } }
以上是“springboot如何配置临时文件存储目录”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。