Passer au contenu principal
Le client Python utilise des requêtes conditionnelles basées sur les ETag pour éviter de retélécharger les fichiers qui n’ont pas changé.

Fonctionnement

  1. Lors du premier téléchargement, le client enregistre le fichier et son ETag dans le cache local ~/.cache/jmail/
  2. Lors des requêtes suivantes, le client envoie une requête HEAD conditionnelle avec If-None-Match: <etag>
  3. Si le serveur répond avec 304 Not Modified, le fichier en cache est utilisé (aucun téléchargement)
  4. Si l’ETag a changé, le fichier est téléchargé à nouveau

Emplacement du cache

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

Désactiver le cache

Python

client = JmailClient(cache=False)

Interface en ligne de commande

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

Vider le cache

rm -rf ~/.cache/jmail/

Manifest

Le point de terminaison /v1/manifest.json fournit les métadonnées des jeux de données et leurs sommes de contrôle, permettant des contrôles automatisés de la fraîcheur des données :
curl https://data.jmail.world/v1/manifest.json | python -m json.tool
client = JmailClient()
manifest = client.manifest()
print(manifest)