sorl thumbnail
初めて使用しています。私は低レベル APIを使用しており、get_thumbnail
メソッドを使用しています。
リンクに従って、正常に使用できましim = get_thumbnail(my_file, '100x100', crop='center', quality=99)
たが、宛先ソースの場所とファイル名も指定したいと思います。それは可能ですか?それ、どうやったら出来るの?
簡単な答え: できません。パスとファイル名は sorl によって生成され、サムネイル パスとそのファイルがキャッシュおよび保存される方法に直接関係します。
sorl
サムネイルを取得または作成する実際のメソッドを見ると、次のようになります。
https://github.com/sorl/sorl-thumbnail/blob/master/sorl/thumbnail/base.py#L32
source filename
作成されたサムネイルの宛先とファイル名は、 、source location
、source dimensions
のハッシュ値であることがわかりますsource options
。このハッシュを作成し、キャッシュをチェックして、そのハッシュ/キーの値が存在するかどうかを確認します。存在する場合は、そのサムネイルに対応するパスを返します。存在しない場合は、サムネイルを生成し、保存してパスをキャッシュします。
したがって、ファイル名の保存先を変更すると、そのサムネイルをキャッシュから取得できなくなります。
変更できる唯一のことは、これらのファイルを保存する場所のルートフォルダーです/cache/...
。/thumbnails/...
「sorl.thumbnail.base.ThumbnailBackend」オーバーライド_get_thumbnail_filenameメソッドを拡張して、宛先ファイル名を処理し、新しいクラスを設定でTHUMBNAIL_BACKENDに署名できると思います。
from django.core.files.base import File
my_file = File(open('/path/to/file', 'rb')) # or my_file = open('/path/to/file', 'rb')
im = get_thumbnail(my_file, '100x100', crop='center', quality=99)