Nestjs 에서는 파일 업로드를 처리하기 위해 Express용
multer
미들웨어 패키지를 기반으로 하는 내장 모듈을 제공한다.이를 사용 하여 파일 업로드를 구현 할 때 한글 파일의 파일명이 깨지는 현상을 수정하는 방법을 설명한다.
삽질
해당 문제를 해결하기위해 여러 테스트를 진행하며 구글링을 하였는데 해당 문제를 설명 하는 포스트 들은 모두
multer
버전을 1.4.4 버전으로 내리라는 설명만 가득했다.하지만 나 같은 경우는
multer
버전을 1.4.4로 내려도 문제가 해결 되지 않았고 결국 삽질을 통해 원인을 파악하고 문제를 해결 하였다.원인
결과적으로 해당 현상의 문제점을
multer
버전의 문제가 맞기는 하다(??)정확히는 nestjs는 express를 래핑하고 있는 npm 패키지의 내부에서 사용하고 있는
multer
의 버전이 원인이다.@nestjs/platform-express
패키지의 릴리즈 버전 8.4.6 → 8.4.7 버전 업데이트간 발생한 문제이다.무식하게 릴리즈 버전을 하나씩 내려가며 문제가 발생하는 시점을 찾았다…
Github에서
@nestjs/platform-express
8.4.6 → 8.4.7 릴리즈 변경사항을 비교 하여 확인결과내부 package.json 에서
multer
의 버전이 1.4.4 → 1.4.4-lts1로 버전이 상승 된것을 확인 하였다.글을 작성하는 현재multer
의 최신 버전(lts)은 1.4.5-lts1이다. (해당 버전에서도 한글이 깨진다)multer
의 버전이 변경된 이유는 1.4.4 버전이 Deprecated 되었기 때문으로 보여진다.
해결
Nestjs에서
multer
를 사용할 때 한글이 깨지는 현상을 수정하기 위해서는@nestjs/platform-express
패키지의 버전을 8.5.6 이하 버전을 사용하면 해결된다.
댓글