Jak używać razem Django, sorl-thumbnail, memcached i S3?

Mam projekt, w którym muszę rozpocząć tworzenie dynamicznie zmienianych miniatur obrazów przesyłanych przez użytkowników, gdzie wcześniej generowałem te o określonej wielkości. Mam istniejący model, który reprezentuje obraz, który wygląda tak:

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

Każdy z nich jest wypełniony adresem URL do odpowiedniego obrazu na S3. W momencie przesyłania wszystkie wersje są tworzone (a właściwie krótko po zaplanowanym zadaniu), przechowywane w S3, a następnie ustawiane w modelu. W przyszłości nasz projekt wymaga wielu różnych rozmiarów dla każdej miniatury, więc przechowywanie ich w db nie jest praktyczne. Chciałbym po prostu zachowaćoriginal i reszta w locie w szablonach.

Więc tu przychodzęsorl-thumbnail. Wydaje się, że zamierzam robić to, co chcę, ale jestem trochę zagubiony, co do tego, jak to powinno działać (to nie jest w tej chwili). Jako test zrobiłem podstawowy widok / szablon, który wyświetla niektóre obrazy i próbuje je miniaturkować, podobnie jak samouczek:

{% 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 %}

To kończy się generowaniem adresu URL dla tego plikucache/84/8f/848fb078f2e8d35aecd92150c6fa6843.png (który 404s). Nie jestem pewien, czy rozumiem, gdzie ten plik ma być zapisywany. Zakładam, że ciągnie plik S3, a następnie tworzy miniaturęgdzieś, ale nie jestem pewien, gdzie to jest i skąd mam służyć. To wszystko jest teraz na lokalnym serwerze devserver, przy użyciu memcached (w którym widzę, że zestaw wpisów cache). PIL jest instalowany w moim środowisku z obsługą jpeg / png.

questionAnswers(1)

yourAnswerToTheQuestion