Создание эскизов по требованию с помощью django и nginx - PullRequest
0 голосов
/ 25 мая 2010

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

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

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

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

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

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

Каким образом это можно сделать?

1 Ответ

1 голос
/ 25 мая 2010

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

...