springboot临时文件存储目录怎么配置

springboot临时文件存储目录怎么配置

本篇内容主要讲解“springboot临时文件存储目录怎么配置”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“springboot临时文件存储目录怎么配置”吧!

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.配置类配置临时文件存储目录

@BeanMultipartConfigElementmultipartConfigElement(){MultipartConfigFactoryfactory=newMultipartConfigFactory();factory.setLocation(tmepPath);returnfactory.createMultipartConfig();}

Springboot修改临时文件的存储位置

报错

项目在线运行了一段时间后,上传文件时抛出如下异常:

The temporary upload location [/tmp/tomcat.*.80/work/Tomcat/localhost/ROOT] is not valid

经过查找,采用了如下的解决方式【修改临时文件的位置】

在application.yml 文件中添加

location:tempDir:/opt/location/tempDir#此处为*unix的系统相关位置

项目中添加配置类

@ConfigurationpublicclassMultipartConfig{@Value("${location.tempDir:/opt/tempDir}")privateStringtempDir;@BeanMultipartConfigElementmultipartConfigElement(){MultipartConfigFactoryfactory=newMultipartConfigFactory();FiletmpDirFile=newFile(tempDir);//判断文件夹是否存在if(!tmpDirFile.exists()){tmpDirFile.mkdirs();}factory.setLocation(tempDir);returnfactory.createMultipartConfig();}}

到此,相信大家对“springboot临时文件存储目录怎么配置”有了更深的了解,不妨来实际操作一番吧!这里是恰卡编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

发布于 2022-04-03 22:34:05
收藏
分享
海报
0 条评论
25
上一篇:springboot怎么更新配置Swagger3 下一篇:SpringBoot拦截器怎么用
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码