코알못

[스프링부트] The temporary upload location [**/tmp/tomcat.*/work/Tomcat/localhost/ROOT]** is not valid 본문

ETC

[스프링부트] The temporary upload location [**/tmp/tomcat.*/work/Tomcat/localhost/ROOT]** is not valid

코린이s 2021. 9. 27. 11:53
728x90

 내장 톰캣을 문제없이 사용하고 있었고, MultiPart 폼 전송하는 행위를 했을때 갑자기 위 오류가 발생하였다.

원인은 ' centos 에서 주기적으로 cron 을 돌며 /tmp 디렉토리에 있는 오랫동안 사용하지 않는 파일을 제거하는데, 내장 톰캣을 사용시 tmp 파일을 위 경로(/tmp)에 default로 저장되나 오랫동안 사용하지 않아 centos에 의해 제거 되어, 다시 저장하려고 시도하였는데 디렉토리 존재하지 않음' 이 원인이다.

해결방안은 두가지가 있다.

1. 재기동(재기동시 tmp 디렉토리 재 생성 되나, 다음에 오랫동안 사용하지 않으면 재 발생할 수 있다.)

2. tmp 파일 경로 /tmp 경로가 아닌 다른 경로로 지정 (centos 에서 /tmp 경로에 있는 파일을 제거하므로 다른 경로로 지정)

저자는 해당 서비스가 추석 연휴때와 같이 연휴가 길면 오랫동안 사용하지 않아 이슈가 재 발생 될 수 있기 때문에 2번을 선택했다.

만약, 서비스가 수시로 사용하는 특성을 가지고 있다면 1번을 해도 된다.

 

임시 파일 디렉토리를 지정하는 방법은 아래와 같다.

application.yml

spring:
  http:
    multipart:
      location: /data/upload_tmp
728x90
Comments