Марат
Новичок
Ресайз картинок. При загрузке на сервер или при отдаче?
Здравствуйте!
У меня вопрос по логике хранения аватаров/картинок на сервере и отдачи их пользователям.
Сейчас аватары хранятся так: при загрузке изменяется размер до нужных размеров (два размера, уменьшенная и большая аватара), исходник удаляется.
Хотим сделать так, чтобы можно было при написании новых модулей на сайт не замарачиваться с размером аватары. По такой схеме:
На сервере храняться оригиналы. При запросе аватары nginx преобразует размер и сохраняет в кеш. То есть ссылка на аватару http://example.org/avatara/48x48/img.jpg где 48x48 - размер.
Отсюдого вопросы:
1. будет ли nginx чистить кеш? или закешированные файлы всегда остаются в системе?
2. как лучше оповещать nginx, что пользователь сменил аватару? Чтобы nginx пересоздал картинку, а не отдавал старую из кеша. Мне пока видится такой вариант: при изменении аватары записывать в базу уникальное значение и в ссылку на получение аватары подставлять это значение. То есть ссылка будет http://example.org/avatara/48x48/qwe.jpg при изменении аватары в базу записывается другое значение и ссылка уже http://example.org/avatara/48x48/ewq.jpg соответсвенно nginx будет пересоздавать картинку в кеше.
3. Лучше сделать ресайз штатными методами nginx или пусть отправляет запрос к php, а тот ресайзит как нужно и возвращает картинку к nginx для хранения в кеш? Из плюсов в php вижу более сильную гибкость при ресайзе.
Вообще стоит ли делать так? Или по прежнему аватары ресайзить при загрузке на сервер, а не при отдаче?
Здравствуйте!
У меня вопрос по логике хранения аватаров/картинок на сервере и отдачи их пользователям.
Сейчас аватары хранятся так: при загрузке изменяется размер до нужных размеров (два размера, уменьшенная и большая аватара), исходник удаляется.
Хотим сделать так, чтобы можно было при написании новых модулей на сайт не замарачиваться с размером аватары. По такой схеме:
На сервере храняться оригиналы. При запросе аватары nginx преобразует размер и сохраняет в кеш. То есть ссылка на аватару http://example.org/avatara/48x48/img.jpg где 48x48 - размер.
Отсюдого вопросы:
1. будет ли nginx чистить кеш? или закешированные файлы всегда остаются в системе?
2. как лучше оповещать nginx, что пользователь сменил аватару? Чтобы nginx пересоздал картинку, а не отдавал старую из кеша. Мне пока видится такой вариант: при изменении аватары записывать в базу уникальное значение и в ссылку на получение аватары подставлять это значение. То есть ссылка будет http://example.org/avatara/48x48/qwe.jpg при изменении аватары в базу записывается другое значение и ссылка уже http://example.org/avatara/48x48/ewq.jpg соответсвенно nginx будет пересоздавать картинку в кеше.
3. Лучше сделать ресайз штатными методами nginx или пусть отправляет запрос к php, а тот ресайзит как нужно и возвращает картинку к nginx для хранения в кеш? Из плюсов в php вижу более сильную гибкость при ресайзе.
Вообще стоит ли делать так? Или по прежнему аватары ресайзить при загрузке на сервер, а не при отдаче?