|
|
d30fd59ade
|
fix(storage): use presigned URLs for private S3 buckets (7-day expiry)
|
2026-07-18 08:24:40 +08:00 |
|
|
|
2dc68ff408
|
feat(cache): add 30-day browser cache for uploaded images (middleware + S3 CacheControl)
|
2026-07-18 08:23:13 +08:00 |
|
|
|
54d778971d
|
fix(storage): allow S3 without public_url, auto-construct path-style URL from endpoint
|
2026-07-18 08:17:35 +08:00 |
|
|
|
4787fdbf22
|
refactor(config): consolidate into single config.json, storage backend selectable
|
2026-07-18 08:05:39 +08:00 |
|
|
|
3a931fe752
|
feat(storage): add S3 image storage support with file-based config and migration script
|
2026-07-18 08:03:18 +08:00 |
|