Чтобы максимально упростить разворачивание сервера был создан репозиторий: https://github.com/larsnovikov/docker-cdn2.
Все исходные изображения должны находиться в папке указанной в параметре 'inputPath' конфигурации. Рекомендуется примонтировать эту папку к Вашему основному Web-приложению и просто складывать в нее загруженные изображения.
Все изображения водяных знаков должны находиться в папке указанной в параметре 'watermarkPath' конфигурации.
Готовые изображения должны попадать в хранилища. Хранилища - это директории находящиеся в папке указанной в параметре 'outputPath' конфигурации. Предполагается, что эти директории будут примонтированными жесткими дисками. Для сохранения изображения выбирается хранилище на котором больше свободного места.
'config/template/cdn-local-tpl.php' => 'config/cdn-local.php' 'config/template/db-local-tpl.php' => 'config/db-local.php'
Скопируйте файлы из config/template в папку config как указано выше, заполните доступы к БД, список ip-адресов с которых разрешено принимать запросы и доступы к серверу AMQP чтобы обрабатывать изображения в фоне.
Отправлять запрос на URL image/get-formats Отправлять запрос на URL image/add-format[ 'format' => json_encode([ 'name' => 'min', 'width' => 150, (1) 'height' => 100, (1) 'margins' => true, (2) 'background' => [ 'color' => '000' (3) ], 'optimize' => true, (4) 'watermark' => [ (5) 'image' => 'logo.png', (6) 'width' => 50, 'height' => 50, 'position' => 'pos_center' (7) ] ]) ](1): Размеры выходного изображения
(2): Метод обработки. true - добавлять поля, не обрезать изображение; false - не добавлять поля, обрезать изображения. (При false поля могут быть добавлены если необходимый размер изображения больше исходника. (Никогда не растягиваем исходники)).
(3): Цвет подложки. Именно этого цвета будут поля.
(4): Оптимизация изображения. true - прогнать изображение через jprgoptim после кропа, false - не прогонять. (Рекомендую всегда включать, т.к. это положительно сказывается в Google Page Speed).
(5): Водяные знаки.
(6): Картинка водяного знака. Должна лежать в папке указанной в параметре 'watermarkPath' конфигурации, быть PNG и с прозрачным фоном.
(7): Позиция водяного знака.
- pos_top_left - сверху слева
- pos_top_right - сверху справа
- pos_bottom_left - снизу слева
- pos_bottom_right - снизу справа
- pos_center - прямо по центру
[ 'name' => 'min' (1) ](1): Имя формата, который надо удалить.
Отправлять запрос на URL image/upload
[ 'source' => 'image.jpg', (1) 'formats' => json_encode([ (2) 'min', 'max' ]), 'queue' => true (3) ](1): Исходное изображение. Должно лежать в папке указанной в параметре 'inputPath' конфигурации или быть ссылкой на изображение.
(2): Список форматов в которые необходимо преобразовать изображение.
(3): Способ обработки. true - обработка через очередь, false - обработка "в лоб". Отправлять запрос на URL image/remove
[ 'source' => 'storage1/remove_me.jpg'(1) ](1): Изображение для удаления. Должно лежать в папке указанной в параметре 'outputPath' конфигурации.