Files
janssen/Python-runner/3_download_attachments_v1.3.md
T
2026-06-05 21:21:30 +02:00

2.3 KiB

3_download_attachments_v1.3.py

Krok 3 pipeline — stahuje skutečné přílohy (is_inline=False) z Mongo emailů přes Graph API do /mnt/Emails/<schránka>/Attachments/. Deduplikace podle SHA256 obsahu:

  • stejný hash → soubor už existuje → přeskočí
  • kolize názvu (stejný název, jiný hash) → faktura_2.pdf, faktura_3.pdf

Po uložení doplní do Mongo file_hash + local_path a aktualizuje kolekci emaily.attachments_index (_id=hash, filename, path, size, mime, mailbox, ref_count). Emaily kde mají všechny přílohy file_hash → skip → bezpečné opakovat.

Argumenty

Argument Povinný Hodnoty Default Popis
--mailbox ne e-mail (všechny) Schránka = kolekce v Mongo. Bez argumentu projede všechny kolekce v emaily mimo SKIP_MAILBOXES a systémové (attachments_index, sync_state)
--limit N ne int 0 (bez limitu) Zpracuje jen prvních N emailů per schránka (test)
--force-recheck ne flag false Znovu ověří i už stažené přílohy
--no-indexes ne flag false Nevytváří indexy na konci

SKIP_MAILBOXES (hardcoded)

Schránka Důvod
vbuzalka@its.jnj.com JNJ tenant, nemáme Graph API přístup. Při běhu bez --mailbox se tiše přeskočí. S explicitním --mailbox vbuzalka@its.jnj.com skript skončí exit kódem 2.

Varianty volání

# VŠECHNY schránky (mimo SKIP_MAILBOXES):
docker exec -it python-runner python /scripts/3_download_attachments_v1.3.py

# Jedna schránka interaktivně:
docker exec -it python-runner python /scripts/3_download_attachments_v1.3.py --mailbox ordinace@buzalkova.cz

# Test 50 emailů:
docker exec -it python-runner python /scripts/3_download_attachments_v1.3.py --mailbox ordinace@buzalkova.cz --limit 50 --no-indexes

# Force-recheck (znovu ověří všechny):
docker exec -it python-runner python /scripts/3_download_attachments_v1.3.py --mailbox ordinace@buzalkova.cz --force-recheck

# Na pozadí, log do souboru:
docker exec -d python-runner bash -c "python /scripts/3_download_attachments_v1.3.py --mailbox ordinace@buzalkova.cz > /scripts/download_attachments.log 2>&1"

Sledování průběhu

docker exec -it python-runner tail -f /scripts/download_attachments.log