From 2c3c9e359a63a73369e6a93b2ba52716d7a8eb94 Mon Sep 17 00:00:00 2001 From: Tobias Leuschner Date: Sat, 9 May 2026 13:50:31 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20Quellverzeichnispr=C3=BCfung=20und=20ve?= =?UTF-8?q?rbesserte=20Fehlerprotokollierung=20f=C3=BCr=20Uploads;=20Versi?= =?UTF-8?q?onsnummer=20auf=201.0.44=20erh=C3=B6ht?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.py | 25 +++++++++++++++++++------ version.txt | 2 +- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/app.py b/app.py index ab2c2d7..a9953a1 100644 --- a/app.py +++ b/app.py @@ -973,29 +973,42 @@ def run_uploads(local_dir: Path, cfg: dict): root = _smb_conn(t) dest = _smb_conn(t, dest_root) + # Quellverzeichnis prüfen + if not local_dir.exists(): + err = f'Quellverzeichnis nicht gefunden: {local_dir}' + add_log(f'Upload {name}: ✗ {err}') + with upload_lock: + upload_state['results'].append({'name': name, 'ok': False, 'msg': err}) + continue + # 1. Verbindung prüfen conn = _rclone('lsd', root, timeout=15) + add_log(f'Upload {name}: Verbindung rc={conn.returncode}') if conn.returncode != 0: - lines = [l for l in conn.stderr.strip().splitlines() if l.strip()] - err = lines[-1] if lines else 'NAS nicht erreichbar' + err = (conn.stderr.strip().splitlines()[-1] if conn.stderr.strip() + else 'NAS nicht erreichbar') add_log(f'Upload {name}: ✗ {err}') with upload_lock: upload_state['results'].append({'name': name, 'ok': False, 'msg': err}) continue # 2. Zielordner anlegen - _rclone('mkdir', dest, timeout=30) + mk = _rclone('mkdir', dest, timeout=30) + add_log(f'Upload {name}: mkdir rc={mk.returncode}' + + (f' err={mk.stderr.strip()[:100]}' if mk.returncode != 0 else '')) # 3. Kopieren + add_log(f'Upload {name}: starte copy von {local_dir}') r = _rclone('copy', str(local_dir), dest, '--create-empty-src-dirs', - '--retries', '2', + '--transfers', '1', + '--retries', '1', timeout=7200) ok = r.returncode == 0 err = '' if not ok: - lines = [l for l in r.stderr.strip().splitlines() if l.strip()] - err = lines[-1] if lines else 'Unbekannter Fehler' + err = r.stderr.strip() or 'Unbekannter Fehler' + add_log(f'Upload {name}: rclone stderr: {err[:300]}') with upload_lock: upload_state['results'].append({'name': name, 'ok': ok, 'msg': err}) diff --git a/version.txt b/version.txt index 693195b..b5d7271 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -1.0.43 \ No newline at end of file +1.0.44 \ No newline at end of file