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

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

WBOY
WBOY앞으로
2023-05-12 23:01:044034검색

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으로 문의하시기 바랍니다. 삭제