Указание имени файла и места назначения в функции get_thumbnail sorl thumbnail - PullRequest
1 голос
/ 15 февраля 2012

Я использую sorl thumbnail в первый раз.Я работаю с Low Level API и использую метод get_thumbnail.

По ссылке я успешно использовал im = get_thumbnail(my_file, '100x100', crop='center', quality=99), но мне бы хотелосьукажите местоположение источника и имя файла.Это возможно?Как мне это сделать?

Ответы [ 3 ]

3 голосов
/ 15 февраля 2012

Краткий ответ: вы не можете. Путь и имя файла создаются с помощью 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/...

2 голосов
/ 09 июня 2014

Полагаю, вы можете расширить 'sorl.thumbnail.base.ThumbnailBackend' override _get_thumbnail_filename метод, который обрабатывает имя файла назначения и подписывает новый класс в THUMBNAIL_BACKEND внастройки.

1 голос
/ 15 февраля 2012
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)
...