Feature(#58): 동영상, 이미지 업로드 구현 by joojae02 · Pull Request #226 · boostcampwm2023/and01-SnapPoint
기존 파일 업로드 흐름은
multipart/form-data으로 파일 담아서 전송요런 흐름으로 파일 업로드를 진행했다
그리고 NestJS 파일 업로드 공식 문서에 있는 multer를 사용해서 구현했다
만약? 엄청 큰 무거운 파일을 업로드하게된다면??
잘못하면 OOM이 일어날것이다
multer를 보면
WARNING: Uploading very large files, or relatively small files in large numbers very quickly, can cause your application to run out of memory when memory storage is used.
지금 Storage로 S3를 사용하고 있기 때문에
여기서 Stream 업로드는 스트림을 pipe 시켜서 s3에 다이렉트로 저장하는 방식이다
요게 업로드하는 파일 전체를 서버에 저장하지 않아서 OOM의 위험이 거의 없어진다 그래서 사실상 저장하는 파일의 크기가 무한대라고 볼 수 있다