오늘 뭐했냐/개발에 대한 주저리

23.08.31 사인드 업로드(Signed Upload)

스스로에게 2023. 9. 7. 10:32

사인드 업로드란 서버에 사인을 요청하고 그 사인을 이용해서 클라이언트에서 업로드 시에 검사를 하고 저장하는 것이다.

  1. 사인 요청: 클라이언트는 먼저 백엔드 서버에 파일 업로드에 필요한 사인된 토큰 또는 URL을 요청합니다.
  2. 토큰 생성: 백엔드 서버는 이 요청을 받고, 클라우드 서비스에게 안전한 업로드를 위한 사인된 토큰 또는 URL을 생성하라고 요청합니다.
  3. 토큰 전달: 백엔드 서버는 사인된 토큰 또는 URL을 클라이언트에게 전달합니다.
  4. 클라이언트 업로드: 클라이언트는 이 사인된 토큰 또는 URL을 사용하여 파일을 직접 클라우드 서비스에 업로드합니다.
  5. 검증 및 저장: 클라우드 서비스는 토큰이나 URL의 유효성을 검사한 후, 파일을 저장합니다.

 

  • 백엔드 서버의 부하 감소: 파일 처리를 클라이언트와 클라우드 서비스가 직접 하기 때문에, 백엔드 서버의 부하를 줄일 수 있다.
  • 보안성: 사인된 토큰 또는 URL은 일반적으로 시간 제한이 있고, 한 번만 사용할 수 있습니다. 따라서 안전한 업로드가 가능하다.
  • 업로드 속도 향상: 백엔드 서버를 거치지 않고 바로 클라우드 서비스에 업로드하기 때문에, 일반적으로 업로드 속도가 더 빠르다.

하지만 과정이 복잡해지는 문제가 있긴 하다. 그리고 사인도 탈취의 위험이 있으며 서비스에 따라 비용이 추가되기도 한다.