Как использовать 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.