Всем привет, участники Discourse,
Мы уже несколько лет самостоятельно хостим свой экземпляр Discourse и накопили коллекцию изображений на S3 объёмом около 30 ГБ. За это время мы несколько раз меняли подход к тому, какие типы файлов изображений разрешать и какой максимальный размер исходных загрузок поддерживать. Также за последние 6 лет в Discourse появились новые функции, которых у нас не было в начале, поэтому основная проблема связана со старыми постами. Новый ресайзер изображений в браузере значительно помог нам оптимизировать использование хранилища и работает отлично.
Мы планируем конвертировать все существующие загруженные изображения в формат JPG и уменьшить их размер, чтобы сократить расходы на хранение. В ходе поиска я нашёл следующее:
https://github.com/discourse/discourse/blob/main/script/downsize_uploads.rb
Подумал, что можно адаптировать этот скрипт. Однако он решает задачу уменьшения размера, но не конвертации форматов: например, он уменьшит исходный размер большого PNG, но оставит его в формате PNG, вместо того чтобы преобразовать в JPG с новым размером.
Похоже, мне придётся написать собственную версию этого файла:
Прежде чем приступить к этому, я решил поделиться своими планами. Возможно, кто-то подскажет: «А можно сделать очень простую вещь без написания кода» — и это сделает меня счастливым.
Буду благодарен за любые идеи, замечания или комментарии. Если мне всё же придётся написать новый rake-скрипт, я поделюсь им здесь, если кто-то ещё находится в похожей ситуации.
Спасибо!