При заливке фото нарезается несколько базовых типовых размеров (а-ля большой, средний, маленький)
в URL клиент явно указывает viewport, в который надо заресайзить картинку.
Дальше на nginx мы с помощью lua динамически выбираем для заданного viewport максимально близкий физический размер и делаем downscale из него на лету.
Помимо этого можно динамически накладывать фильтры — у нас это blur, pixelize и делать crop по координатам, которые переданы с клиента.
Также на все фотки на лету накладывается watermark, которым можно управлять через параметры URL.
Технически, мы и со стороны PHP и со стороны NGINX используем библиотеку http://www.leptonica.org
В обоих местах к ней написаны наши собственные биндинги (модуль к nginx и расширение к php)
Но сейчас есть множество готовых решений, которые дают похожий функционал из коробки.
Как в виде нативных модулей nginx, так и в связке с https://openresty.org/
вот я тоже читаю эти невероятные истории успеха осваивателей go за выходные и поражаюсь.
да, синтаксис можно за выходные выучить без проблем,
но с такими знаниями написать на языке что-то мало-мальски сложное вам не удастся.
и вряд ли «мясо» прямо так прибежит и начнет писать развесистые сетевые приложения или сложную конкуретную логику.
помимо какого-то мифического «знания языка», ИМХО, гораздо важнее опыт и базовые знания,
которые слабо зависят от синтаксиса языка и его сложности.
так вот, go как раз и позволяет делать достаточно сложные вещи с меньшим оверхедом на язык и его тонкости
я, вот, например, тоже не могу понять ваши придирки к постулату про мьютексы-каналы. очевидно, что применимы могут быть оба подхода в разных ситуация, просто один для примитивных случаев, а второй для более сложной логики, вот и все.
попахивает троллингом каким-то с вашей стороны :)
тем самым вы открываете доступ к базе всему интернету.
гораздо лучше биндится на адрес во внутренней сети. насколько я помню, там можно несколько адресов указать.
При заливке фото нарезается несколько базовых типовых размеров (а-ля большой, средний, маленький)
в URL клиент явно указывает viewport, в который надо заресайзить картинку.
Дальше на nginx мы с помощью lua динамически выбираем для заданного viewport максимально близкий физический размер и делаем downscale из него на лету.
Помимо этого можно динамически накладывать фильтры — у нас это blur, pixelize и делать crop по координатам, которые переданы с клиента.
Также на все фотки на лету накладывается watermark, которым можно управлять через параметры URL.
Технически, мы и со стороны PHP и со стороны NGINX используем библиотеку http://www.leptonica.org
В обоих местах к ней написаны наши собственные биндинги (модуль к nginx и расширение к php)
Но сейчас есть множество готовых решений, которые дают похожий функционал из коробки.
Как в виде нативных модулей nginx, так и в связке с https://openresty.org/
да, синтаксис можно за выходные выучить без проблем,
но с такими знаниями написать на языке что-то мало-мальски сложное вам не удастся.
и вряд ли «мясо» прямо так прибежит и начнет писать развесистые сетевые приложения или сложную конкуретную логику.
помимо какого-то мифического «знания языка», ИМХО, гораздо важнее опыт и базовые знания,
которые слабо зависят от синтаксиса языка и его сложности.
так вот, go как раз и позволяет делать достаточно сложные вещи с меньшим оверхедом на язык и его тонкости
попахивает троллингом каким-то с вашей стороны :)
P.S. опоздал с комментом про PHP
записал? следующие 5(условно) минут читаем из мастера.
гораздо лучше биндится на адрес во внутренней сети. насколько я помню, там можно несколько адресов указать.
мне кажется, или это не самая полезная рекомендация?
стоит все-таки написать о проблемах такого решения