跳转到主要内容
Python 客户端使用 基于 ETag 的条件请求 来避免重复下载未更改的文件。

工作原理

  1. 在首次下载时,客户端会将文件及其 ETag 保存到 ~/.cache/jmail/
  2. 在后续请求时,客户端会发送带有 If-None-Match: <etag> 的条件 HEAD 请求
  3. 如果服务器返回 304 Not Modified,则使用本地缓存的文件(无需重新下载)
  4. 如果 ETag 发生变化,则会重新下载该文件

缓存位置

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

关闭缓存

Python

client = JmailClient(cache=False)

命令行界面

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

清除缓存

rm -rf ~/.cache/jmail/

Manifest

/v1/manifest.json 接口提供数据集元数据和校验和,可用于以编程方式检查数据是否为最新:
curl https://data.jmail.world/v1/manifest.json | python -m json.tool
client = JmailClient()
manifest = client.manifest()
print(manifest)