Decommissioned
The gallery worker is retired. This page is historical reference only. See ihnyc-rc-gallery.
Upload flow
- Admin uploads files to
/api/admin/media(multipartfiles). - Worker detects MIME, extracts dimensions, and tries to read EXIF taken date.
- Original is stored in R2 under
originals/<id>.<ext>. - A thumbnail is created via Cloudflare Image Resizing (if possible) and stored as
thumbs/<id>.webp. - KV record and indexes are updated; cache invalidation runs.
Upload flow (Mermaid)
flowchart LR Admin[Admin UI] -->|POST /api/admin/media| Worker[Gallery Worker] Worker -->|detect mime + EXIF| Proc[Image Processing] Proc -->|put originals/*| R2[R2 GALLERY_MEDIA] Proc -->|resize -> thumbs/*| R2 Worker -->|media:<id>| KV[KV GALLERY_META] Worker -->|update indexes| KV Worker -->|invalidate cache| Cache[Cache API]
Thumbnail generation
- Uses
PUBLIC_MEDIA_BASE_URLto fetch the original through Image Resizing. - On failure, thumb is not stored; UI falls back to on-demand variants.
Public URLs
public_urluses/media/<key>?variant=displayfor lightbox.thumb_urluses stored thumbs when available, otherwise/media/<key>?variant=thumb.
Media variants
variant=thumb: scaled to ~480px widevariant=display: scaled to ~1600px widevariant=original: raw bytes
Repair flow (Mermaid)
flowchart LR Admin[Admin UI] -->|POST /api/admin/repair/orphans| Worker[Gallery Worker] Worker -->|list originals + thumbs| R2[R2 GALLERY_MEDIA] Worker -->|list media:<id>| KV[KV GALLERY_META] Worker -->|delete orphans| R2 Worker -->|delete orphaned records| KV Worker -->|rebuild indexes| KV