springboot临时文件存储目录配置方式


Posted in Java/Android onJuly 01, 2021

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();
    }

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

报错

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

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();
   }
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Java/Android 相关文章推荐
解析Java中的static关键字
Jun 14 Java/Android
JPA如何使用entityManager执行SQL并指定返回类型
Jun 15 Java/Android
Java用自带的Image IO给图片添加水印
Jun 15 Java/Android
浅谈@Value和@Bean的执行顺序问题
Jun 16 Java/Android
详解Java实现设计模式之责任链模式
Jun 23 Java/Android
小程序与后端Java接口交互实现HelloWorld入门
Jul 09 Java/Android
spring boot中nativeQuery的用法
Jul 26 Java/Android
JVM钩子函数的使用场景详解
Aug 23 Java/Android
springboot 多数据源配置不生效遇到的坑及解决
Nov 17 Java/Android
Java 轮询锁使用时遇到问题
May 11 Java/Android
Mybatis-plus配置分页插件返回统一结果集
Jun 21 Java/Android
Spring Boot优化后启动速度快到飞起技巧示例
Jul 23 Java/Android
Mybatis-plus在项目中的简单应用
Jul 01 #Java/Android
SpringBoot 拦截器妙用你真的了解吗
解决SpringBoot文件上传临时目录找不到的问题
java实现对Hadoop的操作
Jul 01 #Java/Android
解决MultipartFile.transferTo(dest) 报FileNotFoundExcep的问题
Jul 01 #Java/Android
Java中多线程下载图片并压缩能提高效率吗
分析ZooKeeper分布式锁的实现
You might like
社区(php&&mysql)三
2006/10/09 PHP
同一空间绑定多个域名而实现访问不同页面的PHP代码
2006/12/06 PHP
PHP中一些可以替代正则表达式函数的字符串操作函数
2014/11/17 PHP
JQuery下关于$.Ready()的分析
2009/12/13 Javascript
子窗口、父窗口和Silverlight之间的相互调用
2010/08/16 Javascript
Jquery中删除元素的实现代码
2011/12/29 Javascript
jQuery获得页面元素的绝对/相对位置即绝对X,Y坐标
2014/03/06 Javascript
Node.js实现在目录中查找某个字符串及所在文件
2014/09/03 Javascript
JavaScript设计模式之抽象工厂模式介绍
2014/12/28 Javascript
JQuery中extend的用法实例分析
2015/02/08 Javascript
JavaScript中的依赖注入详解
2015/03/18 Javascript
jQuery验证插件validate使用方法详解
2020/09/13 Javascript
pm2 部署 node的三种方法示例
2017/10/20 Javascript
nodejs中实现用户注册路由功能
2019/05/20 NodeJs
javascript事件监听与事件委托实例详解
2019/08/16 Javascript
layui实现给某一列加点击事件
2019/10/26 Javascript
微信浏览器左上角返回按钮监听的实现
2020/03/04 Javascript
vue页面引入three.js实现3d动画场景操作
2020/08/10 Javascript
js 压缩图片的示例(只缩小体积,不更改图片尺寸)
2020/10/21 Javascript
Ant-design-vue Table组件customRow属性的使用说明
2020/10/28 Javascript
Python遍历指定文件及文件夹的方法
2015/05/09 Python
python+tkinter编写电脑桌面放大镜程序实例代码
2018/01/16 Python
python计算两个数的百分比方法
2018/06/29 Python
Python中base64与xml取值结合问题
2019/12/22 Python
Python获取excel内容及相关操作代码实例
2020/08/10 Python
台湾东南旅游社网站:东南旅游
2019/02/11 全球购物
L*SPACE官网:比基尼、泳装和度假服装
2019/03/18 全球购物
科颜氏英国官网:Kiehl’s英国
2019/11/20 全球购物
白酒市场开发计划书
2014/01/09 职场文书
文明倡议书范文
2014/04/15 职场文书
向国旗敬礼活动小结
2014/09/27 职场文书
2014年政风行风工作总结
2014/11/22 职场文书
2015年五一劳动节活动总结
2015/02/09 职场文书
运动会宣传语
2015/07/13 职场文书
祝福语集锦:给满月宝宝的祝福语
2019/11/20 职场文书
Python之matplotlib绘制折线图
2022/04/13 Python