데모운영 콘솔
대용량 점검자료 분할 업로드 콘솔
끊긴 업로드를 남은 파트만 이어 올리고, 빠진 파일을 이름으로 짚어 내는 흐름을 눌러 볼 수 있습니다(가상 점검 건).
app-production-5084.up.railway.app

열어 보시면 이런 걸 확인하실 수 있습니다
- [2 분할 업로드]를 누르면 파트 격자가 스토리지 응답 기준 4 / 10으로 복원돼 있습니다
- [이어올리기]를 누르면 남은 6파트만 전송돼 10 / 10 · 50.0 MiB로 합쳐집니다
- [폴더 계수 대조]를 누르면 선언 250 · 저장 247과 빠진 파일 3개의 이름이 나옵니다
- 이미 10 / 10이면 [4 관리자 콘솔]의 [초기 상태로 되돌리기]로 4 / 10을 되살립니다
만들면서 풀어야 했던 것
- 점검 원본은 한 건이 수 GB라 업로드가 한 번 끊기면 처음부터 다시 올리게 됩니다. 파일 본문은 presigned 주소로 브라우저와 오브젝트 스토리지가 직접 주고받게 하고, 탭을 다시 열면 브라우저 저장소가 아니라 스토리지의 ListParts 응답으로 받은 파트를 복원해 남은 파트만 보내게 했습니다. 스토리지 조회가 실패하면 파트 격자를 확인된 값처럼 그리지 않고 '(미확정)'과 사유를 붙입니다.
- 브라우저의 폴더 선택은 무엇이 빠졌는지 알려 주지 않습니다. 선언한 파일 수와 스토리지에 실제 저장된 수를 서버가 대조해 빠진 파일을 이름으로 보여 주고, 폴더 업로드 상한을 넘어 잘린 파일이 있으면 그 수를 화면에 적어 누락이 없다는 표시가 거짓이 되지 않게 했습니다.
- 이 데모에는 로그인이 없고, 머리말의 역할 전환기로 고른 역할에 따라 접근을 나눕니다. 화면만 막으면 내부 API로는 여전히 자료를 볼 수 있어 내부 API 앞에도 권한 검사를 두었고, 권한이 없는 역할은 화면뿐 아니라 내부 API에서도 403으로 거절됩니다. 관리자가 [5 회원·권한]에서 권한을 주거나 회수하면 같은 자리가 열리고 닫힙니다.
비슷한 걸 만들어 보고 싶으시다면
구간 견적으로 규모를 먼저 가늠해 보시거나, 조건을 적어 보내 주시면 범위를 정리해 회신드립니다.