지도/코스 썸네일 이미지 등록 기능을 구현하기 위해,

NCP Object Storage 에 이미지를 업로드하고, 해당 URL을 DB에 저장하기로 했다.

먼저, 프론트엔드에서 이미지를 스토리지에 직접 업로드 하는 방법은

버킷 권한에 접근이 필요하기 때문에 보안상 배제하였다.

두 번째로 프론트엔드에서 이미지를 multipart로 백엔드 서버에 전송하고,

그 데이터를 다시 버킷에 업로드 하는 방법의 장점과 단점은 다음과 같다.

장점

  1. 백엔드에서 업로드 전후에 비즈니스 로직 처리 가능

단점

  1. 이중 전송 과정에서 네트워크 전송 비용이 증가
  2. 백엔드 서버의 부하 증가 / 성능 저하

그래서 아래 방법을 시도해 보았다.

Cloud Functions 이용해 Pre-signed URL 을 발급해 사용하는 방법

해당 URL 에 PUT 요청으로 이미지를 업로드하는 방법이다.

응답. uploadedUrl 은 이미지를 조회 가능한 url 이며,  응답에 임의로 추가

응답. uploadedUrl 은 이미지를 조회 가능한 url 이며, 응답에 임의로 추가

NCP에서 제공하는 서비스임에도 aws의 S3 sdk를 사용했는데,

getSignedUrl 에서는 파일 크기 제한을 지원하지 않았다.

그래서 찾아낸 것이 아래의 방법이다.

Pre-signed Post 를 이용하는 방법