H1K0 fae87ad05c feat(backend): 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
S
Description
🎋 Tanabata — web file manager with tags!
AGPL-3.0 6.2 MiB
3.0.0 Latest
2026-07-07 11:17:52 +03:00
Languages
Go 48.9%
Svelte 39.9%
TypeScript 8.7%
PLpgSQL 1.3%
Dockerfile 0.5%
Other 0.7%