Upload große Dateien bruchsicher nach Nextcloud – ohne Browser-Timeouts.
- Asynchron (aiohttp + aiofiles) – eine Session, volle Leitung
- Chunk-Upload (≥ 5 MiB) mit automatischem Zusammenführen (
MOVE …/.file) - Typer CLI – selbstdokumentierend, Farben via Rich
- Schicke Fortschrittsbalken (Speed, ETA, mehrere Dateien parallel)
- Keyring‑Integration &
.env‑Fallback, Login‑Check beim Speichern - Profile für mehrere Clouds / Accounts
- Python ≥ 3.11 • GPLV3
- Installation
- Erster Login
- Dateien hochladen
- Optionen & Beispiele
- Profile – mehrere Accounts
- Entwicklung & Tests
- Roadmap
- Lizenz
# empfohlenes src‑Layout → editable install
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\Activate.ps1
pip install -e .[dev] # inkl. pytest & ruffOder später direkt aus PyPI:
pip install nchunk# prüft URL + Zugangsdaten sofort per PROPFIND
nchunk login https://cloud.example.com alice
# Passwort‑Eingabe wird verdeckt- Erfolgreich → Daten landen verschlüsselt im OS‑Keyring (
nchunk_nextcloud). - Fehlgeschlagen → klare Meldung, keine Speicherung.
# Ein File
nchunk upload movie.iso \
--url https://cloud.example.com \
--user alice
# Mehrere parallel
nchunk upload *.zip docs/**/*.pdf \
--url cloud.example.com \
--user alice \
--chunk-size 10485760 \
--remote-dir Backups/$(date +%Y-%m-%d)
--urlkann mit oder ohnehttps://angegeben werden; das Tool hängt bei Bedarf/remote.php/davautomatisch an.
| Flag | Default | Erklärung |
|---|---|---|
--chunk-size |
10485760 |
Bytes pro Chunk (≥ 5 MiB) |
--remote-dir |
"" |
Zielordner in Nextcloud (wird angelegt) |
--insecure |
False |
TLS‑Prüfung abschalten (Self‑Signed Certs) |
--concurrency |
4 |
Max. parallele Datei‑Uploads |
--profile |
default |
Trennt mehrere Accounts (siehe unten) |
--resume* |
– | geplant – Upload fortsetzen |
--dry-run* |
– | geplant – nur Requests anzeigen |
# Work‑Cloud
nchunk login https://cloud.work.com alice --profile work
# Private Cloud
nchunk login cloud.home.net bob --profile home
# Upload mit explizitem Profil
nchunk upload video.mp4 --profile workKeyring‑Keys → <url>::<user>::<profile>.
ruff check src tests # Linting
pytest # Unit‑ & Async‑TestsDer src‑Layer stellt sicher, dass Tests nur nach
pip install -e . funktionieren – Import‑Fehler fallen sofort auf.
- Resume abgebrochener Uploads (
--resume) - Sync‑Ordner (watch & upload)
- Progress‑Export als JSON / Quiet‑Mode
- ✅ PyPI‑Release mit Signed Wheel
- Windows‑Installer (pex / shiv)
PRs & Issues willkommen 🙂
GPLV3, siehe LICENSE