Раскидать картинки по папкам.

WMix

герр M:)ller
Партнер клуба
извените за мою ремарку, так и есть погорячился, но есть еще одна проблемка, инвалидация cache.
оригинал только что изменили по ftp. как действовать будем?
 

Redjik

Джедай-мастер
все правильно, а теперь после того как они раскиданы, хотелось бы их читать, и генерить путь до файла средствами RewriteMap
который кстати может еще и сгенерить/перегенерить preview, зная соурс.
да я именно так изначально и хотел, но на уровне nginx ... походу только с Lua модулем бы получилось ... в итоге посовещались и решили

сервер изображений может возвращать ID изображения в формате 'path/xyz' после того как на него залили это изображение,
это решает проблему как узнать путь к файлу изображений
 

Активист

Активист
Команда форума
извените за мою ремарку, так и есть погорячился, но есть еще одна проблемка, инвалидация cache.
оригинал только что изменили по ftp. как действовать будем?
Удаление миниатюр. Но вообще никто их по ФТП менять не будет))
 

WMix

герр M:)ller
Партнер клуба
Ой не зарекайся, эти бледнолиции способны на все. Я проверяю на дату в viewhelper перед тем как url отдать, и удаляю из cache, а дальше подобно твоему подходу, по просьбе генерю. Но мне не нравится что логика разбросана, rewritemap - решение, чтоб собрать воедино.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
программист должен предусмотреть все возможные варианты развития событий (в том числе ХАК, в виде прямого вызова скрипта) - то простой readfile избавит сервер от вторичного ресайза изображения, остановив возможный dDoS.
я решил сделать проще: для ресайза выделить отдельный пул fpm из нескольких процессов (меньше, чем число ядер).
отресайзенная статика раздается nginx-ом сама по себе, а если забьется очередь ресайзов - ну и ладно, невелика проблема.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
извените за мою ремарку, так и есть погорячился, но есть еще одна проблемка, инвалидация cache.
оригинал только что изменили по ftp. как действовать будем?
в распределенной архитектуре, где картинками занимается отдельный сервис, приложение заливает на cdn новое изображение и отдает команду на удаление старого. сервер изображений сам удаляет оригинал и чистит отресайзенные картинки, а приложение продолжает работать без задержек с новым id картинки.

откуда веб-приложение узнает об изменении файла по ftp - я так сходу не знаю, задача звучит как абстрактный конь в вакууме
 

WMix

герр M:)ller
Партнер клуба
Сдн должен считать новую картинку, нет нет нам приходилось flush писать, картинки днями не обновлялись на пустышки после удаления. Да не суть разве это интересно? Интересно использовал ли кто реврайтмар, и какие минусы
 

MiksIr

miksir@home:~$
Можно на nginx накрутить локейшн с паттернами, который id % 100 делает.
А можно просто тупо nginx кешом пользоваться, т.е. отресайзенное хранит на диске сам nginx посредством fastcgi_cache. Там и бизи-локи есть.
 
Сверху