본문 바로가기

Dev/Spring Boot

Spring Boot 외부 파일 경로 설정

728x90

Spring Boot 외부 파일 경로

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry){
        String resourcePath = "file:///TistoryImages/";
        String connectPath = "/image/{subfolder}/**";
        registry.addResourceHandler(connectPath)
                .addResourceLocations(resourcePath);
    }
}
  • Spring Boot는 내부적으로 static 안에 있는 파일만 가져올 수 있도록 세팅되어있음. 그래서 외부에서 파일을 가져오려면 경로를 지정해줘야함.
  • 위의 코드를 해석하면
    • 커넥트패스의 양식으로 요청이 들어오면 리소스패스 경로에서 파일을 찾겠다는 뜻이됨.
    • 단, 여기서 C:는 빼야함.
    • 그리고 위 처럼 {서브폴더} 를 붙히면 리소스 패스의 서브폴더 이름에서 값을 찾음. 예를들어

INPUT → localhost:8080/image/algorithm/dfs.jpg 라고 요청이 오면

OUTPUT → C:\\TistoryImages\algorithm 폴더에서 dfs 이름의 파일을 찾아서 리턴해준다.

이러면 간편하게 다른 메소드 필요 없이 파일을 리턴해줄 수 있다.