파일이 수백 개를 넘으면 브라우저보다 명령행 클라이언트 geo-mlops-client 가 낫습니다. 파일을 압축하지 않은 ZIP 묶음(기본 16 MiB)으로 모아 다시 이어 보낼 수 있는 조각(청크) 으로 보내므로, 앞단 프록시의 요청 크기 제한이나 응답 시간 제한에 걸리지 않고 중간에 끊겨도 이어 갑니다.

먼저 데이터셋을 화면에서 만들어 두고(튜토리얼 2단계), 주소창이나 상세 화면에서 데이터셋 ID(ds-…)를 확인합니다.

  1. 로그인합니다. 비밀번호는 물어볼 때 입력하고, 테넌트를 함께 기억시켜 둡니다.
    geo-mlops-client login [email protected] \
        --base-url https://mlops.example.com --tenant DEMO
  2. 폴더를 통째로 올립니다. 폴더는 재귀로 훑고, 숨김 파일은 뺍니다.
    geo-mlops-client datasets upload-archive ds-3263ed3c333b ~/data/helmet/ \
        --skip-existing 2>&1 | tee -a ~/upload.log
  3. 끝나면 요약 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 (파일 한두 개, 한 파일 = 요청 한 번)
묶음 크기--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 → 로그인 때 기억한 값 순서
서버 주소--base-url 또는 GEO_MLOPS_CLIENT_BASE_URL (기본 http://localhost:10000)

클라이언트 설치와 다른 명령은 연동 장에서 다룹니다.

2026-09-21 기준 플랫폼에 맞춰 작성했습니다.

© Geo-MLOps