跳转到主要内容

在缓存代理后优化Datasette性能

项目描述

datasette-hashed-urls

PyPI Changelog Tests License

在缓存代理后优化Datasette性能

当您使用-i选项以只读模式打开数据库文件时,Datasette将在启动时计算该文件内容的SHA-256哈希值。

然后,此内容哈希可以可选地用于创建在文件内容将来更改时保证会更改的URL。

结果是页面,浏览器和缓存代理都可以无限期缓存,从而提供显著的性能提升。

演示

此插件的演示正在https://datasette-hashed-urls.vercel.app/运行

安装

在Datasette相同的环境中安装此插件。

$ datasette install datasette-hashed-urls

使用

安装后,此插件将作用于加载到Datasette中的任何只读数据库文件

datasette -i fixtures.db

数据库将自动重命名,以包含SQLite文件内容的哈希值 - 因此上述数据库将作为以下内容提供

http://127.0.0.1:8001/fixtures-aa7318b

访问该数据库的每个页面,包括JSON端点,都将提供以下远期缓存过期头

cache-control: max-age=31536000, public

在这里,max-age=31536000是一年的秒数。

Cloudflare等缓存代理可以用于缓存和加速由Datasette提供的内容。

当数据库文件更新并重新启动服务器时,哈希值将更改,内容将从新的URL提供。任何访问先前哈希URL的请求将被自动重定向。

如果您使用 --crossdb 选项来启用跨数据库查询(请参阅 跨数据库查询文档),那么 _memory 数据库的 URL 也会添加一个哈希值 - 在这种情况下,哈希值将是其他附加数据库哈希值的组合。

配置

您可以使用 max_age 插件配置设置来更改 cache-control HTTP 头中指定的缓存持续时间。

要将缓存过期时间设置为一小时,您需要将以下内容添加到 Datasette 的 metadata.json 配置文件中

{
    "plugins": {
        "datasette-hashed-urls": {
            "max_age": 3600
        }
    }
}

历史

此功能曾作为 Datasette 本身的一部分提供,称为 哈希 URL 模式

该功能已被弃用,将在 Datasette 1.0 中移除。应使用此插件作为替代方案。

开发

要本地设置此插件,首先检出代码。然后创建一个新的虚拟环境

cd datasette-hashed-urls
python3 -mvenv venv
source venv/bin/activate

或者如果您使用 pipenv

pipenv shell

现在安装依赖项和测试依赖项

pip install -e '.[test]'

要运行测试

pytest

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

datasette-hashed-urls-0.4.tar.gz (8.3 kB 查看哈希值)

上传时间

构建分布

datasette_hashed_urls-0.4-py3-none-any.whl (8.9 kB 查看哈希值)

上传时间 Python 3

由以下支持