Masahiko AMANO cf7317747e feat: implement DiskStorage with on-demand thumbnail/preview cache
Files stored as {files_path}/{id} (no extension). The ext parameter
is removed from Save/Read/Delete in both the port interface and
the implementation.

Thumbnail and Preview both use imaging.Thumbnail (fit within
configured max bounds, never upscale, never crop) — the config
values THUMB_WIDTH/HEIGHT and PREVIEW_WIDTH/HEIGHT are upper limits,
not forced dimensions.

Non-decodable files (video, etc.) receive a #444455 placeholder.
Cache writes use atomic temp→rename; on cache failure the generated
image is served from memory so the request still succeeds.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-04 18:11:54 +03:00
2026-04-01 16:17:37 +03:00
2026-04-01 16:17:37 +03:00
Description
🎋Tanabata — web file manager with tags!
3.9 MiB
Languages
Go 47.4%
Svelte 41.9%
TypeScript 9.8%
PLpgSQL 0.4%
HTML 0.3%
Other 0.2%