Commit Graph
2 Commits
Author SHA1 Message Date
avandClaude Opus 5 2bf618d105 media: кодеки для magick в образе и диагностика ресайза
Базовый пакет imagemagick в alpine идёт без кодеков, поэтому magick не мог
прочитать jpeg-вложение и падал с "exit status 1". Ставим imagemagick-jpeg,
-heic, -webp, -tiff.

Чтобы такое было видно из логов: runMagick подставляет stderr в ошибку и
отдельно ловит "код выхода 0, но пустой вывод" (так magick ведёт себя без
кодека на запись), а веб логирует формат, размеры до и после, время
скачивания и ресайза.

Если ресайз всё же не удался, отдаём оригинал вместо 502; в кэш не кладём
записи больше 4 МБ, чтобы неужатые оригиналы не съели память.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-06 12:37:57 +03:00
avandClaude Opus 5 39f4a4dff9 web: картинки заметки отдаются через ресайз
Раньше страница ссылалась прямо на файлы Memos, и в браузер уезжали
исходники с телефона на десятки мегабайт. Теперь вложения идут через
эндпоинт /image/{uid}: скачиваем тем же клиентом, что и телеграм-часть,
ужимаем ImageMagick до 1600px по большей стороне и кэшируем результат
в памяти (FIFO на 20 картинок) плюс Cache-Control на час.

GIF и SVG отдаются без конверсии: анимация и вектор в JPEG теряются.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-06 12:26:33 +03:00