我是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)