> Java > java지도 시간 > springboot에서 임시 파일 저장 디렉터리를 구성하는 방법

springboot에서 임시 파일 저장 디렉터리를 구성하는 방법

WBOY
풀어 주다: 2023-05-12 23:01:04
앞으로
4079명이 탐색했습니다.

springboot 임시 파일 저장 디렉터리 구성

시나리오:

파일 업로드 기능에서 오류가 보고된 후 로그를 확인하세요.

오류 로그:

임시 업로드 위치 [/tmp/tomcat.7957874575370093230.8088/work/Tomcat/localhost/ROOT]가 유효하지 않습니다.

이유:

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는 임시 파일의 저장 위치를 ​​수정합니다

오류 보고

프로젝트가 일정 기간 동안 온라인으로 실행된 후 파일을 업로드할 때 다음 예외가 발생합니다.

임시 업로드 위치 [/tmp/ tomcat.*.80 /work/Tomcat/localhost/ROOT]가 유효하지 않습니다

검색 결과 다음 해결 방법이 채택되었습니다. [임시 파일 위치 수정]

application.yml 파일에 추가

location:
  tempDir: /opt/location/tempDir #此处为*unix的系统相关位置
로그인 후 복사

Add 프로젝트의 구성 클래스

@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에서 임시 파일 저장 디렉터리를 구성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿