mirror of
https://github.com/enpaul/kodak.git
synced 2024-11-14 10:36:55 +00:00
Ethan Paul
a87ca3bc80
One of the goals is to make the generated content directory directly hostable via a web browser for performance. This means that the application needs to be able to generate a file tree identical to the URL structure so that clients can fetch a single URL and either use the cached image or trigger a manipulation depending on whether it already exists. With a url structure of /key and /key/manip for the source and manips respectively, it becomes impossible to create a file tree matching it since 'key' must be both the source file and a directory containing the manipulated images. This updates it to use 'original' as a special manip name so the URL structure of /key/original and /key/manip can match the directory structure |
||
---|---|---|
kodak | ||
tests | ||
.coveragerc | ||
.gitignore | ||
.pre-commit-config.yaml | ||
.pylintrc | ||
LICENSE.md | ||
Makefile | ||
openapi.yaml | ||
poetry.lock | ||
pyproject.toml | ||
README.md | ||
tox.ini |
kodak
HTTP server for handling image uploads and thumbnail generation.
This project requires Poetry 1.0+
Implementation goals
Support token based authentication:
POST /auth/token
GET /img/abcdefg.jpg?token=XYZ
Support dynamic resolution generation:
GET /img/abcdefg/100x50.jpg
Support server-side aliasing of resolutions to names:
GET /img/abcdefg/foobar.jpg # translates to something like 120x90
Support parameter-based selection of scaling method:
# "absolute scale horizontal", "relative scale vertical"
GET /img/abcdefg/200x100.jpg?h=abs&v=rel
Support both sqlite and maria storage backend
Support redis caching to relieve file system strain
Support autocleaning of cached file system files to reduce directory size
Support