🤔 발생 상황
- [오류 이미지 및 코드 캡처]

👀 원인 파악(예상)
1MB
이상의 파일 게시 시 발생하게 된 오류
- 프론트에서는
Validation
처리를 해야 할 듯 합니다 😂
✔ 해결 과정
여러분들께서 감사하게도 에러를 찾아주시고 관련 레퍼런스를 참고해주신점을 바탕으로 해결을 할 수 있었습니다.
위의 에러는 악의적인 사용을 방지하기위해 한 번의 파일전송 용량을 default 1MB로 설정되어 있어서 용량이 초과된 파일을 전송하는 경우 발생하는 예외입니다.
따라서 NGINX와 TOMCAT에서 파일 업로드 요청 용량 허용 범위를 늘려주는 방법을 해결하였습니다.
- nginx에서
client_max_body_size
를 최대 10M까지 설정하여 파일을 받도록 허용합니다.
http { ## # Basic Settings ## ... client_max_body_size 10M;
- nginx에서 해결해주니 이번에는 tomcat에서 오류를 뱉네용!
2021-12-16 04:17:00.688 ERROR 1 --- [nio-8080-exec-7] o.a.c.c.C.[.[.[.[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.web.multipart.MaxUploadSizeExceededException: Maximum upload size exceeded; nested exception is java.lang.IllegalStateException: org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException: The field image exceeds its maximum permitted size of 1048576 bytes.] with root cause org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException: The field image exceeds its maximum permitted size of 1048576 bytes. at org.apache.tomcat.util.http.fileupload.FileUploadBase$FileItemIteratorImpl$FileItemStreamImpl$1.raiseError(FileUploadBase.java:633) ~[tomcat-embed-core-9.0.29.jar!/:9.0.29] at org.apache.tomcat.util.http.fileupload.util.LimitedInputStream.checkLimit(LimitedInputStream.java:76) ~[tomcat-embed-core-9.0.29.jar!/:9.0.29] at org.apache.tomcat.util.http.fileupload.util.LimitedInputStream.read(LimitedInputStream.java:135) ~[tomcat-embed-core-9.0.29.jar!/:9.0.29] at java.io.FilterInputStream.read(FilterInputStream.java:107) ~[?:?]
- Spring config 에서 파일용량 허용을 늘려봅시다.
spring: servlet: multipart: max-file-size: 10MB max-request-size: 10MB
3MB 이미지 업로드 성공!
{ "message": "IMAGE_UPLOAD_SUCCESS", "serverDateTime": "2021-12-16T04:35:07.300864", "data": { "uploadImageUrl": "https://jungdam-image.s3.ap-northeast-2.amazonaws.com/temp/dd548eee-5d1a-4303-882e-a1bc602a9c44" } }
✨ Reference
- 해결하기 위한 레퍼런스