feat: Quellverzeichnisprüfung und verbesserte Fehlerprotokollierung für Uploads; Versionsnummer auf 1.0.44 erhöht
This commit is contained in:
25
app.py
25
app.py
@@ -973,29 +973,42 @@ def run_uploads(local_dir: Path, cfg: dict):
|
|||||||
root = _smb_conn(t)
|
root = _smb_conn(t)
|
||||||
dest = _smb_conn(t, dest_root)
|
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
|
# 1. Verbindung prüfen
|
||||||
conn = _rclone('lsd', root, timeout=15)
|
conn = _rclone('lsd', root, timeout=15)
|
||||||
|
add_log(f'Upload {name}: Verbindung rc={conn.returncode}')
|
||||||
if conn.returncode != 0:
|
if conn.returncode != 0:
|
||||||
lines = [l for l in conn.stderr.strip().splitlines() if l.strip()]
|
err = (conn.stderr.strip().splitlines()[-1] if conn.stderr.strip()
|
||||||
err = lines[-1] if lines else 'NAS nicht erreichbar'
|
else 'NAS nicht erreichbar')
|
||||||
add_log(f'Upload {name}: ✗ {err}')
|
add_log(f'Upload {name}: ✗ {err}')
|
||||||
with upload_lock:
|
with upload_lock:
|
||||||
upload_state['results'].append({'name': name, 'ok': False, 'msg': err})
|
upload_state['results'].append({'name': name, 'ok': False, 'msg': err})
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# 2. Zielordner anlegen
|
# 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
|
# 3. Kopieren
|
||||||
|
add_log(f'Upload {name}: starte copy von {local_dir}')
|
||||||
r = _rclone('copy', str(local_dir), dest,
|
r = _rclone('copy', str(local_dir), dest,
|
||||||
'--create-empty-src-dirs',
|
'--create-empty-src-dirs',
|
||||||
'--retries', '2',
|
'--transfers', '1',
|
||||||
|
'--retries', '1',
|
||||||
timeout=7200)
|
timeout=7200)
|
||||||
ok = r.returncode == 0
|
ok = r.returncode == 0
|
||||||
err = ''
|
err = ''
|
||||||
if not ok:
|
if not ok:
|
||||||
lines = [l for l in r.stderr.strip().splitlines() if l.strip()]
|
err = r.stderr.strip() or 'Unbekannter Fehler'
|
||||||
err = lines[-1] if lines else 'Unbekannter Fehler'
|
add_log(f'Upload {name}: rclone stderr: {err[:300]}')
|
||||||
|
|
||||||
with upload_lock:
|
with upload_lock:
|
||||||
upload_state['results'].append({'name': name, 'ok': ok, 'msg': err})
|
upload_state['results'].append({'name': name, 'ok': ok, 'msg': err})
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
1.0.43
|
1.0.44
|
||||||
Reference in New Issue
Block a user