이미지 업로드 프로세스
이미지 업로드는 아래의 알고리즘 순서에 따라 작동합니다.
- Step1: 클라이언트가 서버에게 업로드 URL을 요청합니다. (REQUEST)
- Step2: 클라이언트가 이미지 데이터를 업로드 URL에 업로드합니다. (UPLOAD)
- Step3: 클라이언트가 서버에게 업로드가 완료됐다고 알립니다. (CONFIRM)
- Step4: 서버가 이미지 디스플레이를 위한 작업을 시작합니다. (PROCESS)
- Step5: 클라이언트가 이미지 작업의 스테터스를 확인합니다. (CHECK)
- Step1: 서버가 이미지 작업을 완료한 후 클라이언트에게 알립니다. (FINALIZE)
📍 클라이언트가 서버에게 업로드 URL을 요청합니다. (REQUEST)
이미지를 바로 서버에 업로드 하는 것은 보안의 문제가 발생할 수 있습니다. 서버는 이미지를 올릴 수 있는 URL을 클라이언트에게 전송해줘야 합니다.
📍 클라이언트가 이미지 데이터를 업로드 URL에 업로드합니다. (UPLOAD)
서버에게 Post 요청을 보내는 것이 아닌 URL에 Post 요청을 보내야 합니다.
📍 클라이언트가 서버에게 업로드가 완료됐다고 알립니다. (CONFIRM)
이미지가 URL에 업로드가 완료되면 클라이언트는 서버에게 완료상태와 토큰을 요청으로 보내야 합니다.
📍 서버가 이미지 디스플레이를 위한 작업을 시작합니다. (PROCESS)
토큰을 검증한 후, 업로드 요청을 확인합니다.
📍 클라이언트가 이미지 작업의 스테터스를 확인합니다. (CHECK)
서버에서의 이미지 작업은 오랜시간이 걸릴 수 있습니다. 그러므로 클라이언트는 작업을 진행도를 확인할 수 있어야 합니다.
📍 서버가 이미지 작업을 완료한 후 클라이언트에게 알립니다. (FINALIZE)
이미지 작업을 완료후 이미지 URL을 클라이언트에게 리턴해 줍니다. 클라이언트는 이미지 URL을 통해 이미지를 사용할 수 있게됩니다.
References
https://jgefroh.medium.com/software-architecture-image-uploading-67997101a034