서버리스 플랫폼을 사용하면 프런트에서 아마존 같은 클라우드로 직접 전송도 가능하지만 여기에서는 프런트로 노드서버로 올려주면 노드에서 해당 화일을 메모리에 저장했다가 아마존 S3에 저장하고 저장된 유알엘을 리턴하는 구조이다.

화일 업로드

먼저 파일을 처리하는 미들웨어인 multer 를 설치한다.

multer는 크게 디스크에 저장하는 방식과 디스크에 저장하지 않고 메모리에 저장하는 방식이 있다. 서버에 직접 저장하는 방식이 아니라 S3에 업로드 할것이므로 메모리에 저장하는 방식이 적합하다.

/api/admin/photo 로 한개의 화일을 업로드하게 되면 multer 미들웨어가 photo라는 이름을 추출하여 처리후 다시 AdminController의 addPhoto로 넘긴다.

미들웨어에서 multi-part/form 데이터로 올라온 값을 추출후 req.file로 제공해주므로 콘솔창에 출력해보자.

이제 프런트에서 이미지를 업로드하는 부분은 완성이 되었으므로 업로드된 이미지를 S3에 저장하고 결과를 리턴하는 구문을 완성한다.

S3 업로드

aws sdk를 먼저 설치한다.

s3에 올리기위 한 config폴더에 aws.ts 화일을 생성

addPhoto 부분을 업데이트한다.