Spring 사용시 외부경로(로컬)에 존재하는 Resource를 사용하고 싶을 때가 있습니다. 이때 외부에 있는경로를 Resource로 사용하는 방법을 알아보도록 하겠습니다.
그리고 multipartfile를 이용해서 file upload시 fileSize 를 변경하는 방법에 대해 알아보도록 하겠습니다.
WebMvcConfigurer
의 addResourceHandlers
를 통해서 설정 할 수 있습니다.
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/getFiles/**")
.addResourceLocations("file:///project/user/files/");
}
}
.addResourceHandler 를 통해 외부에서 Resource를 요청하는 경로를
.addResourceLocations 에 해당하는 경로로 매핑해줍니다.
즉, URI /getFiles/
이하로 요청 될 경우 로컬에 존재하는 /project/user/files/
경로에 있는 파일을 찾아서 제공합니다.
Ex) http://localhost:8080/getFiles/1 -> file:///project/user/files/1 로 매핑된다.
.addResourceLoacations()
설정시 로컬 디스크 경로일경우file:///
접두어를 꼭 붙여야 합니다.
간단하게 application.properties
을 사용해 속성을 추가해주면 쉽게 변경 가능합니다.
spring.servlet.multipart.maxFileSize=원하는용량
spring.servlet.multipart.maxRequestSize=원하는용량