2.3 KiB
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 | (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