Оптимизация загруженных изображений
Пользователи могут загружать изображения для каналов. Большие изображения не масштабируются автоматически Notifly и могут занимать ненужное место на диске и пропускную способность сети. Скрипт ниже переразмеренит все изображения в их максимальное измерение, то есть ширину и/или высоту, до 512 пикселей. Изображения меньшего размера не будут переразмеренены.
Изображения PNG будут оптимизированы по размеру файла без потери качества.
После того как файл был переразмерен/оптимизирован, он не будет переразмерен/оптимизирован снова позже.
Предварительные требования
Заголовок раздела «Предварительные требования»Установите
Создайте скрипт, например /opt/notifly/optimize-images.sh содержащий
#!/usr/bin/env bashset -e
DATA=/home/jm/src/Notifly/data
for FILE in "$DATA"/images/*; do if [ "$FILE" -nt "$DATA"/images-optimized ]; then EXT=$(echo "${FILE##*.}"|tr '[:upper:]' '[:lower:]') if [ "$EXT" = png -o "$EXT" = jpg -o "$EXT" = jpeg -o "$EXT" = gif ]; then convert "$FILE" -resize "512>" "$FILE" fi if [ "$EXT" = png ]; then optipng "$FILE" fi fidonetouch "$DATA"/images-optimizedОбратите внимание, что если $DATA/images-optimized отсутствует, все файлы выбираются для
переразмеривания и оптимизации.
Выполните следующую команду в скрипте
sudo chmod go-rw /opt/notifly/optimize-images.shsudo chmod u+x /opt/notifly/optimize-images.shСкрипт можно протестировать, выполнив его вручную. Наличие резервной копии каталога данных перед этим всегда желательно.
Планирование
Заголовок раздела «Планирование»Добавьте следующую строку в файл, например /etc/cron.d/notifly
12 12 * * * root /opt/notifly/optimize-images.sh