以前は特定のサイズの画像を生成していた、ユーザーがアップロードした画像の動的にサイズ変更されたサムネイルの作成を開始する必要があるプロジェクトがあります。次のような画像を表す既存のモデルがあります。
class Image(models.Model):
original = models.URLField()
small = models.URLField()
medium = models.URLField()
large = models.URLField()
それらのそれぞれには、S3上のそれぞれの画像へのURLが入力されています。アップロード時に、すべてのバージョンが作成され(実際には、スケジュールされたタスクを介して直後に)、S3に保存されてから、モデルに設定されます。今後、私たちのデザインではサムネイルごとにさまざまなサイズが必要になるため、それらすべてをデータベースに保存することは現実的ではありません。original
テンプレートに残りをオンザフライで保持して実行したいと思います。
だから、これは私がsorl-thumbnailに来るところです。それは私がやりたいことをすることを意図しているようですが、それがどのように機能するのかについては少し迷っています(現時点ではそうではありません)。私が行ったテストとして、チュートリアルのように、いくつかの画像を一覧表示し、それらをサムネイル化しようとする基本的なビュー/テンプレートを作成しました。
{% 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 %}
cache/84/8f/848fb078f2e8d35aecd92150c6fa6843.png
その結果、 (404s)のようなファイルのURLが生成されます。このファイルがどこに保存されるのかわかりません。S3ファイルを取得して、どこかにサムネイルを作成していると思いますが、それがどこにあるのか、どこから提供するのかがわかりません。これはすべてローカル開発サーバー上にあり、memcachedを使用しています(キャッシュエントリが設定されていることがわかります)。PILは、jpeg/pngをサポートする私の環境にインストールされます。