在缓存代理后优化Datasette性能
项目描述
datasette-hashed-urls
在缓存代理后优化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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f6f9d69f9a4bd65947489b9a10f8143882abee444e24013bbc1cd430932c1358 |
|
MD5 | d22209c01fff57a0e716a69248dea7bb |
|
BLAKE2b-256 | beacf991e3c41f6e935968c0ba5def91571ed69c97273568b77dadc488141ec3 |
datasette_hashed_urls-0.4-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b719001a4c8a5c39cf654dd595df2d1ee93ede52253dbec7098c5a4631b80588 |
|
MD5 | d7a10da8da85fcf2c5d0440e0fdac4bd |
|
BLAKE2b-256 | bf5180b6de42f85ffdcde2474977fc3ab4987e24379d8d2aa658897aed2589a1 |