plone.pgthumbor¶
Offload image scaling from Plone to Thumbor.
Replaces Plone’s @@images view with signed Thumbor URLs – no more in-ZODB
scale storage, no more write-on-read, no more scaling in the Plone process.
Includes zodb-pgjsonb-thumborblobloader,
a Thumbor 7 loader that reads blobs directly from PostgreSQL.
Key capabilities:
Drop-in replacement for Plone’s image scaling (overrides
@@images)302 redirect to Thumbor – Plone never touches image bytes
HMAC-signed URLs prevent arbitrary transformation requests
Access control for non-public images via
@thumbor-authREST serviceSmart focal point detection and cropping
Async blob loading from PostgreSQL
blob_statetableS3 fallback for tiered blob storage
Local disk LRU cache on the Thumbor side
Plone control panel for settings
Requirements: Python 3.12+, Plone 6, zodb-pgjsonb >= 1.1, Thumbor 7+, PostgreSQL 14+
Documentation¶
Learning-oriented – Step-by-step lessons to build skills.
Start here if you are new to plone.pgthumbor.
Goal-oriented – Solutions to specific problems.
Use these when you need to accomplish something.
Information-oriented – Configuration tables and API details.
Consult when you need detailed information.
Understanding-oriented – Architecture, security, and design decisions.
Read to deepen your understanding of how it works.
Quick start¶
Run the Docker quickstart (Plone + Thumbor + PostgreSQL in 5 minutes)