으.. 나의 실수.........
게시글을 작성할 때 파일을 업로드하게 된다.
이미지 파일만 업로드가 되어야한다. 하지만 내가 작성한 코드는 모든 파일 형식이 업로드가 가능하다. 하지만 클라이언트 쪽에서는 이미지 파일만 보여지기 때문에 파일이 깨진 것처럼 보인다.
유저피드백을 진행하다가 어느 한 분이 알려주셨다. 내가 깊게 생각하지 않았던 것 같다.

S3 를 확인해보니 .exe 파일이 업로드가 되어있었다.
여러 파일 형식의 파일들을 넣어서 multipartFile.getContentType() 으로 파일 형식을 확인해보았다.
| 파일 형식 | multipartFile.getContentType() |
|---|---|
.html | text/html |
.pdf | application/pdf |
.zip | application/zip |
.svg | image/svg+xml |
.jpg / jpeg | image/jpeg |
.png | image/png |
.gif | image/gif |
확인해본 결과 이미지 파일 형식은 image 로 시작한다.
이것을 이용하기로 했다.
if (!multipartFile.getContentType().startsWith("image")) {
throw new PostException(ClientErrorCode.ONLY_PERMIT_IMAGE);
}
만약 mulipartFile로 들어오는 파일의 파일 형식이 image 로 시작하지 않는다면 Exception이 던져지도록 하였다.