대용량 데이터셋 업로드 (CLI)
명령행 클라이언트로 수천 개 파일 업로드, 중단 시 이어서 업로드
필요 권한: 데이터셋 쓰기DEVELOPER · OPERATOR · ADMIN
파일이 수백 개를 넘으면 브라우저 대신 명령행 클라이언트 geo-mlops-client 사용. 클라이언트는 파일을 압축하지 않은 ZIP 묶음(기본 16 MiB)으로 묶어 재개 가능한 조각(청크) 으로 전송. 앞단 프록시의 요청 크기·응답 시간 제한을 받지 않고, 전송 중 연결이 중단되어도 이어서 전송.
데이터셋은 화면에서 미리 생성(튜토리얼 2단계). 데이터셋 ID(ds-…)는 주소창이나 상세 화면에서 확인.
- 로그인. 비밀번호는 프롬프트가 표시되면 입력. 테넌트도 함께 저장.
geo-mlops-client login [email protected] \ --base-url https://mlops.example.com --tenant DEMO - 폴더 전체 업로드. 하위 폴더까지 재귀적으로 탐색하고 숨김 파일은 제외.
geo-mlops-client datasets upload-archive ds-3263ed3c333b ~/data/helmet/ \ --skip-existing 2>&1 | tee -a ~/upload.log - 완료되면 요약 JSON 출력. 화면의 데이터셋 파일 탭에서 개수와 유효·오류 확인.
업로드가 중단된 경우
- 조각 하나가 실패하면 명령이 재전송(조각마다 3회).
- 그래도 명령이 중단되었다면(노트북 절전 등) 같은 명령을 그대로 다시 실행.
--skip-existing이 데이터셋에 이미 있는 파일 이름을 건너뛰고 이어서 업로드. - 진행 로그는 표준오류, 요약 JSON 은 표준출력으로 출력되므로
| jq로 확인.
{ "dataset_id": "ds-…", "chunks": 2, "created": 85,
"skipped_by_server": 0, "skipped_existing": 0, "failed_chunk": 3 }
참고 사항
| 항목 | 내용 |
|---|---|
| 두 명령 | upload-archive (기본, ZIP 묶음 + 청크) / upload (파일 1~2개, 파일당 요청 1회) |
| 묶음 크기 | --chunk-size 16M (기본). 대부분 변경 불필요. |
| 파일 종류 | 확장자로 구분. .png/.jpg/… 이미지, .json/.xml 어노테이션, .ply 포인트클라우드, .csv/.tsv/.parquet 표·시계열, 나머지는 기타. |
| 파일 이름 | 폴더 없이 파일 이름만 남음. 다른 폴더의 같은 이름은 충돌(명령이 미리 경고). |
| 특정 확장자만 | geo-mlops-client datasets upload-archive ds-… ~/data/*.jpg ~/data/*.json |
| 임시 공간 | 묶음 하나 크기만큼 TMPDIR 여유 필요. 부족하면 명령 앞에 TMPDIR=/여유/경로 지정. |
| 테넌트 | --tenant → 환경 변수 GEO_MLOPS_CLIENT_TENANT → 로그인 때 저장한 값 순서 |
| 서버 주소 | 로그인 시 저장한 주소 사용. login 은 --base-url → 환경 변수 GEO_MLOPS_CLIENT_BASE_URL → 이전에 저장한 주소 → 기본 http://localhost:10000 순서로 결정. 주소를 변경하려면 다시 로그인. |
클라이언트 설치와 다른 명령은 연동 장 참고.