Я сохраняю изображения в хранилище amazon s3.
image = models.ImageField(upload_to=upload_avatar_to, null=True, blank=True)
def upload_avatar_to(instance, filename):
import os
from django.utils.timezone import now
shop_uuid = Shop.objects.get(id=instance.shop_id).uuid
instance_dict = instance.__dict__
filename_base, filename_ext = os.path.splitext(filename)
return 'shops/%s/items/%s/%s%s' % (
shop_uuid,
instance_dict['uuid'],
now().strftime("%Y%m%d%H%M%S"),
filename_ext.lower(),
)
Теперь я получаю изображение, сохраненное в хранилище, и изменяю его размер до миниатюры для сохранения пустого файла (имеющего размер 0B), вызывая create_avatar_thumb
def create_avatar_thumb(self):
import os
from PIL import Image
from django.core.files.storage import default_storage as storage
if not self.image:
return ""
file_path = self.image.name
filename_base, filename_ext = os.path.splitext(file_path)
thumb_file_path = "%s_thumb.jpg" % filename_base
f = storage.open(file_path, 'rb')
image = Image.open(f)
image.thumbnail((400, 400))
f_thumb = storage.open(thumb_file_path, "w")
image.save(f_thumb, "JPEG")
f_thumb.close()
Пожалуйста, помогите; используя django