1.问题原因
在 Linux 系统中,Spring Boot 应用启动时,会在操作系统的 /tmp 目录下生成一个 tomcat(或 undertow )临时目录,上传的文件会先转换成临时文件保存这个文件夹下面。

由于临时 /tmp 目录下的文件,在长时间(10天)没有使用的情况下,Linux系统执行tmp 目录清理服务systemdtmpfilesclean.service),导致 /tmp/undertow… 下的文件被清理

然而在上传时候服务需要先去创建/tmp/undertow…/…upload 临时文件,但是调用 Files.createFile(…) 的时候就会发现找不到父目录,才导致了以上的错误
2.解决方法
1)第一种:重启服务
可以暂时解决问题,进行发布上传
2)第二种:配置文件指定目录
需要在服务器手动创建文件夹
mkdirp /data/tmp

spring:
  servlet:
      multipart:
          location: /data/tmp

3)添加启动参数java.tmp.dir=/path/to/application/temp/

原文地址:https://blog.csdn.net/kelekele111/article/details/128527783

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_44504.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注