Как использовать Django, sorl-thumbnail, memcached и S3 вместе?

У меня есть проект, в котором мне нужно начать создавать миниатюры динамически изменяемых размеров загруженных пользователем изображений, где я раньшеЯ генерировал некоторые специально измеренные. У меня есть существующая модель, которая представляет изображение, которое выглядит следующим образом:

class Image(models.Model):
  original = models.URLField()
  small = models.URLField()
  medium = models.URLField()
  large = models.URLField()

Каждый из них заполняется URL-адресом соответствующего изображения на S3. Во время загрузки все версии создаются (фактически, вскоре после этого, посредством запланированного задания), сохраняются в S3 и затем устанавливаются в модели. В дальнейшем нашему дизайну нужно много разных размеров для каждого эскиза, поэтому хранить их все в БД нецелесообразно. Я'хотел бы просто сохранитьoriginal и делать все остальное на лету в шаблонах.

Так вот куда я прихожуsorl-миниатюр, Кажется, я хочу делать то, что хочу, но яЯ как бы потерялся в том, как этодолжен работать (этоне сейчас). В качестве теста яМы сделали базовый вид / шаблон, в котором перечислены некоторые изображения и сделаны попытки их миниатюры, как в учебнике:

{% for img in image_set %}
  {% thumbnail img.original "180x180" crop="center" format="PNG" as im %}
  <img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}">
  {% endthumbnail %}
{% endfor %}

Это в конечном итоге создает URL для файла, какcache/84/8f/848fb078f2e8d35aecd92150c6fa6843.png (который 404s). Я'Я не уверен, что понимаю, где должен храниться этот файл. Я предполагаю, что он тянет в файл S3, а затем создает эскизгде-то, но мне неясно, где это и откуда я должен его обслуживать. Это все на локальном devserver прямо сейчас, с использованием memcached (в котором я вижу, как получить записи кэша). PIL установлен в моей среде с поддержкой jpeg / png.

Ответы на вопрос(1)

Ваш ответ на вопрос