참고 링크

Presigned URL을 이용하여 S3로 파일 업로드

S3 Presigned Url 도입하기 (+Java로 파일 크기 제한[content-length] 추가)

S3 Presigned URL 사용 이유

① 다수의 이미지를 S3 버킷으로 관리하여 대량의 데이터를 효율적으로 저장하고 관리

② 클라이언트에서 서버를 거치지 않고 직접 S3에 파일을 업로드 할 수 있다.

③ 파일 업로드를 서버가 처리할 필요가 없어 서버 부하를 줄인다.

④ 서버는 토큰과 URL 만 제공하면 되며, 실제 파일은 클라이언트에서 S3로 전달된다.

실행 순서

① 사용자가 파일첨부 입력 필드에서 이미지를 선택하면 해당 함수가 호출된다.

② 유효한 파일이 생성되면, 일회용 토큰을 생성한다.

③ 생성된 토큰을 사용해 파일을 업로드할 URL 을 요청한다.

④ Presigned URL 을 사용하여 Fetch를 통해 S3에 파일을 PUT 방식으로 업로드 한다.

⑤ 이미지가 성공적으로 업로드 되면, S3에서 반환된 이미지 URL 을 상태로 저장한다.

S3 Presigned URL을 사용한 이미지 업로드