datasette-remote-metadata 由 simonw

标星

README 源代码

datasette-remote-metadata

PyPI Changelog Tests License

定期从远程 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