Zum Hauptinhalt springen
Der Python-Client verwendet ETag-basierte bedingte HTTP-Anfragen, um unveränderte Dateien nicht erneut herunterladen zu müssen.

Funktionsweise

  1. Beim ersten Download speichert der Client die Datei und ihren ETag unter ~/.cache/jmail/
  2. Bei nachfolgenden Anfragen sendet der Client eine bedingte HEAD-Anfrage mit If-None-Match: <etag>
  3. Wenn der Server mit 304 Not Modified antwortet, wird die zwischengespeicherte Datei verwendet (kein Download)
  4. Wenn sich der ETag geändert hat, wird die Datei erneut heruntergeladen

Cache-Speicherort

~/.cache/jmail/
  emails.parquet
  emails.etag
  emails-slim.parquet
  emails-slim.etag
  documents.parquet
  documents.etag
  ...

Cache deaktivieren

Python

client = JmailClient(cache=False)

Kommandozeilenoberfläche (CLI)

uv run jmail.py emails --no-cache --head 5

Cache leeren

rm -rf ~/.cache/jmail/

Manifest

Der Endpunkt /v1/manifest.json stellt Metadaten zu Datensätzen und Prüfsummen bereit und ermöglicht programmatische Prüfungen auf Aktualität:
curl https://data.jmail.world/v1/manifest.json | python -m json.tool
client = JmailClient()
manifest = client.manifest()
print(manifest)