Я хочу создавать эскизы изображений на лету.
Мой сайт построен с помощью django и развернут с использованием nginx, который обслуживает весь статический контент и взаимодействует с django/apache с использованием обратного прокси.
Прямо сейчас для каждого изображения на моем сайте я создаю миниатюры всех необходимых размеров и доставляю их по мере необходимости. Проблема в том, что всякий раз, когда я меняю размер эскиза, мне приходится регенерировать их все (а их тонны).
Однако теперь я хотел бы сгенерировать миниатюру при первом доступе к ней, а позже nginx будет доставлять один и тот же файл снова и снова. Если я удалю этот файл эскиза из-за меньшего количества обращений, он должен быть сгенерирован автоматически в следующий раз. Миниатюры в моем случае также имеют водяные знаки, которые требуют некоторой вычислительной логики моего приложения, поэтому модуль миниатюр веб-сервера может работать не очень хорошо.
Размер миниатюры может быть встроен в URL-адрес. Таким образом, http://www.example.com/thumbnail/abc_320x240.jpg получает Размер миниатюры 320x240.
Подход, который я ищу сейчас, заключается в том, чтобы позволить nginx искать файл, и если он не существует, переслать запрос моему приложению django, которое создаст миниатюру и отправит либо ответ, либо строку перенаправления. Однако я не уверен в проблемах параллелизма и любых других проблемах, которые могут возникнуть позже.
Каков правильный способ добиться этого?