Создание эскизов по требованию с помощью django и nginx

Я хочу создавать эскизы изображений на лету.

Мой сайт построен с помощью django и развернут с использованием nginx, который обслуживает весь статический контент и взаимодействует с django/apache с использованием обратного прокси.

Прямо сейчас для каждого изображения на моем сайте я создаю миниатюры всех необходимых размеров и доставляю их по мере необходимости. Проблема в том, что всякий раз, когда я меняю размер эскиза, мне приходится регенерировать их все (а их тонны).

Однако теперь я хотел бы сгенерировать миниатюру при первом доступе к ней, а позже nginx будет доставлять один и тот же файл снова и снова. Если я удалю этот файл эскиза из-за меньшего количества обращений, он должен быть сгенерирован автоматически в следующий раз. Миниатюры в моем случае также имеют водяные знаки, которые требуют некоторой вычислительной логики моего приложения, поэтому модуль миниатюр веб-сервера может работать не очень хорошо.

Размер миниатюры может быть встроен в URL-адрес. Таким образом, http://www.example.com/thumbnail/abc_320x240.jpg получает Размер миниатюры 320x240.

Подход, который я ищу сейчас, заключается в том, чтобы позволить nginx искать файл, и если он не существует, переслать запрос моему приложению django, которое создаст миниатюру и отправит либо ответ, либо строку перенаправления. Однако я не уверен в проблемах параллелизма и любых других проблемах, которые могут возникнуть позже.

Каков правильный способ добиться этого?


person sharjeel    schedule 25.05.2010    source источник


Ответы (1)


Вы описываете, как работает sorl.thumbnail без водяных знаков. Но вы, вероятно, могли бы довольно легко изменить sorl, чтобы добавить свои водяные знаки к основным эскизам, которые он делает.

person thraxil    schedule 25.05.2010