定期从远程 URL 刷新 Datasette 元数据
在与 Datasette 相同的环境中安装此插件。
$ datasette install datasette-remote-metadata
将以下内容添加到您的 metadata.json
{
"plugins": {
"datasette-remote-metadata": {
"url": "https://example.com/remote-metadata.yml"
}
}
}
此插件将在启动时从该 URL 获取指定的元数据,并与任何现有元数据合并。该 URL 可以指向 JSON 文件或 YAML 文件。
它将定期刷新该元数据 - 默认情况下每 30 秒刷新一次,除非您在插件配置中指定一个替代的 "ttl"
值。
可用的配置选项如下
"url"
- 用于检索远程元数据的 URL。可以链接到 JSON 或 YAML 文件。"ttl"
- 整数值,单位为秒:脚本应该多久检查一次新的元数据。默认为 30 秒。"headers"
- 要发送的额外请求头的字典。"cachebust"
- 如果为 true,一个随机值(例如?0.29508
)将被添加到远程元数据的查询字符串中,以清除任何中间缓存。
此 metadata.json
配置示例每 10 秒刷新一次,使用缓存清除,并在请求中发送 Authorization: Bearer xyz
头
{
"plugins": {
"datasette-remote-metadata": {
"url": "https://example.com/remote-metadata.yml",
"ttl": 10,
"cachebust": true,
"headers": {
"Authorization": "Bearer xyz"
}
}
}
}
如果您使用 metadata.yaml
进行配置,示例如下
plugins:
datasette-remote-metadata:
url: https://example.com/remote-metadata.yml
ttl: 10
cachebust: true
headers:
Authorization: Bearer xyz
要在本地设置此插件,首先检出代码。然后创建一个新的虚拟环境
cd datasette-remote-metadata
python3 -mvenv venv
source venv/bin/activate
或者如果您使用 pipenv
pipenv shell
现在安装依赖项和测试依赖项
pip install -e '.[test]'
运行测试
pytest