Find changed static files, show their URLs, and optionally purge them for you on your CDN. https://pypi.org/project/purge-static/
Find a file
2022-01-27 22:30:01 -05:00
purge_static Drop six dependency and Python 2 support 2022-01-27 22:30:01 -05:00
.gitignore Update .gitignore 2022-01-27 22:28:01 -05:00
LICENSE Initial commit: release 0.1 2018-12-03 18:42:49 -05:00
MANIFEST.in Initial commit: release 0.1 2018-12-03 18:42:49 -05:00
README.md Initial commit: release 0.1 2018-12-03 18:42:49 -05:00
setup.py Drop six dependency and Python 2 support 2022-01-27 22:30:01 -05:00

purge-static PyPI PyPI - Format PyPI - Python Version

purge-static is a tool to find changed static files, show their URLs, and optionally purge them for you on your CDN, such as CloudFlare.

With purge-static, you can enable aggressive caching for your static site on your CDN, caching the entire site on the CDN edge. When you update your site, you simply need to use purge-static to purge only the changed files.

purge-static uses the SHA256 hash of files to determine if they changed.

Installation

pip install purge-static

Example Invocation

purge-static -d /path/to/my/webroot -u https://example.com

If your webroot is not writable, you can select a different path to write the hash store with --store /path/to/a/file/to/store/hashes.

This example ignores all .gz files, since they are only used for nginx's gzip_static module, as well as all files with hash already in the name:

purge-static -d /path/to/my/webroot -u https://example.com \
    -i '.*\.gz$|.*-[0-9a-f]{64}\.'

For more detailed description of the arguments, run purge-static --help.

CloudFlare

To use CloudFlare, you will need to create a credentials file:

{
    "email": "you@example.com",
    "api_key": "myverysecretapikey"
}

Then, you can invoke purge-static:

purge-static -d /path/to/my/webroot -u https://example.com \
    --cloudflare -c /path/to/my/credentiails -z mycloudflarezoneid

Note that -z takes the CloudFlare zone ID as 32 hex digits.