博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring boot 临时文件过期
阅读量:6982 次
发布时间:2019-06-27

本文共 1179 字,大约阅读时间需要 3 分钟。

hot3.png

第一种方案:-Djava.io.tmpdir = /xxx

 

 

第二种方案:

 

线上的系统中不能上传文件了,出现如下错误:

org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request;nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat.1337767218595042057.80/work/Tomcat/localhost/ROOT] is not valid org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.parseRequest(StandardMultipartHttpServletRequest.java:112) org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.

 

原因: 

linux系统中,springboot应用服务再启动(java -jar 命令启动服务)的时候,会在操作系统的/tmp目录下生成一个tomcat*的文件目录,上传的文件先要转换成临时文件保存在这个文件夹下面。由于临时/tmp目录下的文件,在长时间(10天)没有使用的情况下,就会被系统机制自动删除掉。所以如果系统长时间无人问津的话,就可能导致上面这个问题。

解决办法: 

public MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
factory.setLocation("/data/app/temp");
// 文件最大
factory.setMaxFileSize("10240KB"); // KB,MB
// / 设置总上传数据总大小
factory.setMaxRequestSize("102400KB");
return factory.createMultipartConfig();
}

手动的将临时文件夹设置为自定义的文件夹,就不会被Linux删除了。

ps:在windows系统中可以生效,系统会自动生成/data/apps/temp这一路径,但是在Linux系统中不会生成/data/apps/temp路径

转载于:https://my.oschina.net/u/2356710/blog/2986440

你可能感兴趣的文章
1024程序员节获奖通知
查看>>
9大方法为云安全保驾护航
查看>>
Android Studio Linking an external C++ project 时候 报Invalid file name. Expected: CMakeLists.txt
查看>>
MYSQL数据库注释
查看>>
管理11gRAC基本命令 (转载) 很详细
查看>>
数据库 SQL语法一
查看>>
实现物体绕不同轴旋转,并可以外部调用的函数
查看>>
UDP socket 设置为的非阻塞模式
查看>>
Atitit截屏功能的设计解决方案
查看>>
mysql通过binlog日志来恢复数据
查看>>
JWT实现token-based会话管理
查看>>
Shell学习笔记 - 环境变量配置文件(转)
查看>>
CSharpGL(39)GLSL光照示例:鼠标拖动太阳(光源)观察平行光的漫反射和镜面反射效果...
查看>>
scikit-learn 入门
查看>>
调用百度云Api实现从百度云盘自动下载文件
查看>>
Java中的List
查看>>
Mycat原理、应用场景
查看>>
几种进程间的通信方式
查看>>
算法笔记_120:蓝桥杯第六届省赛(Java语言B组部分习题)试题解答
查看>>
第二百一十七节,jQuery EasyUI,NumberSpinner(数字微调)组件
查看>>