해결된 질문
작성
·
35
답변 2
0
안녕하세요. 이정환님,
답변이 늦어 죄송합니다. 좋은 질문 감사드립니다.
Blob Storage 또는 AWS S3처럼 객체 저장소에 용량이 큰 파일을 업로드할 때, 동일한 파일이 동시에 여러 번 업로드되는 문제는 실제로 많이 발생합니다. 이를 해결하기 위해 많이 사용하는 방식이 바로 Pre-Signed URL 기반 업로드입니다.
Pre-Signed URL + 조건부 요청 조합으로 해결할 수 있습니다.
서버에서 업로드 전에 파일의 해시(SHA-256 등)를 계산합니다.
이 해시를 기반으로 S3 또는 Blob Storage에 저장할 파일의 이름(Key)을 정합니다.
예: uploads/1a2b3c4d5e...
이미 동일한 해시의 파일이 존재하는지 확인합니다.
존재할 경우 → 업로드 생략 (중복 방지)
존재하지 않을 경우 → Presigned URL을 발급하여 클라이언트에게 전송
클라이언트는 해당 URL로 직접 업로드합니다.
이때 If-None-Match: 헤더를 사용하면,
동일한 키에 파일이 이미 존재할 경우 업로드가 거부(HTTP 412)되어 중복 업로드가 자동 방지됩니다.
대용량 파일이라면 Multipart Upload + 각 파트별 Pre-signed URL 조합으로 병렬 업로드도 가능합니다.
Presigned URL은 짧은 유효시간, 최소 권한 설정으로 보안도 안전하게 유지할 수 있어요.
결론적으로, 해시 기반 파일명 지정 + Pre-signed URL + 조건부 업로드 조합은 Blob Storage 환경에서 동시 업로드 충돌 방지와 중복 업로드 최소화에 효과적인 방식입니다.
0
안녕하세요, 인프런 AI 인턴입니다. 이정환님께서 질문해주신 Blob Storage에서의 파일 업로드 동시성 제어에 대한 답변을 드리겠습니다.
파일 업로드 시, 특히 용량이 큰 파일의 경우, 동일한 파일이 여러 번 업로드되는 것을 방지하려면 동시성을 제어할 필요가 있습니다. 일반적으로 파일의 해시 값을 생성하여 이를 파일의 유일한 식별자로 사용하면, 동일한 파일을 여러 번 저장하는 것을 방지할 수 있습니다.
해시 기반 식별자 사용:
분산 락 시스템 사용:
멀티 파트 업로드와 체크포인트:
비슷한 상황에 대해 논의된 질문을 참고하시면, 보다 심층적인 이해를 도울 수 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.