AWS 이미지 업로드시 파일 유형과 용량 제한
상황
- AWS를 통해 이미지 업로드시 멀티파트파일로 받아온다.
- 이 때, 이미지가 아닌 파일을 업로드하거나 너무 큰 파일을 업로드 하는 경우에 서비스에 문제가 발생할 수 있다고 판단하였음.
해결방안
- 파일 유형의 경우 멀티파트파일에서 내장하고 있는 함수인 getContentType()을 사용하였음
- mimeType을 판단하여 image/png 와 같은 형태로 반환하여 주기 때문에 이를 이용하여 startsWith("image")로 파일 유형을 제한하였다.
- 유형에 속하지 않는 경우에는 예외처리하였다.
String type = multipartFile.getContentType();
if(!type.startsWith("image")) throw new CustomException(ErrorCode.FILE_TYPE_INVALID);
- 파일 크기의 경우 멀티파트파일에서 내장하고 있는 함수인 getSize()를 사용하였음
long size = multipartFile.getSize();
if(size>3500000) throw new CustomException(ErrorCode.FILE_SIZE_INVALID);