1

sorl thumbnail初めて使用しています。私は低レベル APIを使用しており、get_thumbnailメソッドを使用しています。

リンクに従って、正常に使用できましim = get_thumbnail(my_file, '100x100', crop='center', quality=99)たが、宛先ソースの場所とファイル名も指定したいと思います。それは可能ですか?それ、どうやったら出来るの?

4

3 に答える 3

3

簡単な答え: できません。パスとファイル名は sorl によって生成され、サムネイル パスとそのファイルがキャッシュおよび保存される方法に直接関係します。

sorlサムネイルを取得または作成する実際のメソッドを見ると、次のようになります。

https://github.com/sorl/sorl-thumbnail/blob/master/sorl/thumbnail/base.py#L32

source filename作成されたサムネイルの宛先とファイル名は、 、source locationsource dimensionsのハッシュ値であることがわかりますsource options。このハッシュを作成し、キャッシュをチェックして、そのハッシュ/キーの値が存在するかどうかを確認します。存在する場合は、そのサムネイルに対応するパスを返します。存在しない場合は、サムネイルを生成し、保存してパスをキャッシュします。

したがって、ファイル名の保存先を変更すると、そのサムネイルをキャッシュから取得できなくなります。

変更できる唯一のことは、これらのファイルを保存する場所のルートフォルダーです/cache/.../thumbnails/...

于 2012-02-15T15:36:57.737 に答える
2

「sorl.thumbnail.base.ThumbnailBackend」オーバーライド_get_thumbnail_filenameメソッドを拡張して、宛先ファイル名を処理し、新しいクラスを設定でTHUMBNAIL_BACKENDに署名できると思います。

于 2014-06-09T15:00:48.437 に答える
0
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)
于 2012-02-15T13:46:43.867 に答える