Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Jesssullivan/FastPhotoAPI

Repository files navigation

FastPhotoAPI

An efficient, flexible, flask-based image server that uses lanczos resampling to serve optimized cached photos.

python3.12 -m venv fast_photo_venv
source fast_photo_venv/bin/activate
pip install -r requirements.txt

Usage:

  • Resample & fetch a cached image /image/<yourimage>
  • Resample and fetch an image with a specific max dimension:
    • /image/<yourimage>?w=69 or
    • /image/<yourimage?h=69> or
    • /image/<yourimage>?w=69&h=42
  • Fetch the original, unmodified image /full/<yourimage>

Structure:

This application adopts the factory pattern; flask run instantiates the built-in development server by executing create_app() at the root of the app/ package, while python application.py creates a new production application, served by waitress.

.
├── app
 ├── __init__.py # create and serve development application
 └── main
 ├── config
│ │ ├── conf.py # Utility configs and methods 
│ │ └── config.cfg # set directories, max image dimensions, etc
│ ├── fullsize
│ │ └── routes.py # Blueprint routing for serving verbatim image files 
│ ├── __init__.py # `create_app()` entrypoint
│ ├── resampled
│ │ ├── model.py # Image resampling methods
│ │ ├── trashd.py # garbage collector daemon 
│ │ └── routes.py # Blueprint routing for `/image/` 
│ └── static
│ └── routes.py # Blueprint routing for `/static/` 
├── application.py # create and serve production application w/ waitress
├── cache # resampled images are dynamically generated adn stored here 
├── Dockerfile # currently deployed at Koyeb 
├── pictures # full res pictures go here
├── README.md # you are here
├── static
│ └── style.css # index styling
└── templates
 ├── index.html 
 └── upload.html

Build

Locally:

flask run # 0.0.0.0:5000
flask run # 0.0.0.0:8000

Production via Docker:

## build production docker image:
docker build -t <srv> .
## serve production docker image locally:
docker run -d -p 8000:8000 <srv>:latest
## stop local image:
# docker ps
# docker stop 
## push image to a container registery: 
# docker push <srv>

About

An efficient, flexible, flask-based image server using Lanczos resampling

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /