尝试使用django + django storages + boto调整S3上的图像大小。以下是摘录,
sbs = S3BotoStorage()
# create a copy of the original image
file_o = sbs.open(name, 'r')
image_t = Image.open(file_o).copy()
file_o.close()
# resize the image
image_t.thumbnail((500, 500), Image.ANTIALIAS)
# overwrite or create new(changing name to name_new) the image
file_n = sbs.open(name, 'w')
image_t.save(file_n, 'JPEG')
image_t.close()
file_n.close()
这与django 1.7.4 + django-storages 1.1.8 + boto 2.36.0
合作得很好。
但升级django 1.9.2 + django-storages 1.4 + boto 2.39.0
后停止工作。
不会抛出任何错误。代码执行得很好,但图片(name
)仍然是原始尺寸(1000*1000
而不是500*500
)。即使我们将file_n
中的文件名更改为其他文件名(name_new
),也不会创建新文件。
相同的代码段适用于FileSystemStorage
。