Giter VIP home page Giter VIP logo

cdn's Introduction

Хранилище изображений web-проекта(микросервис)


Быстрая установка

Чтобы максимально упростить разворачивание сервера был создан репозиторий: 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 - прямо по центру

Удаление формата

Отправлять запрос на URL image/remove-format
[
    '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' конфигурации.

cdn's People

Contributors

larsnovikov avatar

Stargazers

 avatar

Watchers

 avatar  avatar

cdn's Issues

Тесты

Попробовать обрабатывать картинку палитры и в итоге снимать цвета определенных координат

кроп без ушей

разбить расчет "без ушей" и "с ушами" и собственно реализовать "без ушей"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.