Presigned URL을 이용하여 S3로 파일 업로드
S3 Presigned Url 도입하기 (+Java로 파일 크기 제한[content-length] 추가)
S3 Presigned URL 사용 이유
① 다수의 이미지를 S3 버킷으로 관리하여 대량의 데이터를 효율적으로 저장하고 관리
② 클라이언트에서 서버를 거치지 않고 직접 S3에 파일을 업로드 할 수 있다.
③ 파일 업로드를 서버가 처리할 필요가 없어 서버 부하를 줄인다.
④ 서버는 토큰과 URL 만 제공하면 되며, 실제 파일은 클라이언트에서 S3로 전달된다.
실행 순서
① 사용자가 파일첨부 입력 필드에서 이미지를 선택하면 해당 함수가 호출된다.
② 유효한 파일이 생성되면, 일회용 토큰을 생성한다.
③ 생성된 토큰을 사용해 파일을 업로드할 URL 을 요청한다.
④ Presigned URL 을 사용하여 Fetch를 통해 S3에 파일을 PUT 방식으로 업로드 한다.
⑤ 이미지가 성공적으로 업로드 되면, S3에서 반환된 이미지 URL 을 상태로 저장한다.