Я использую Django с django-хранилищами для сохранения изображений в Google Cloud Storage.Но я получаю сообщение об ошибке каждый раз, когда пытаюсь загрузить изображение с измененным размером.
Моя модель содержит
def save(self, force_insert=False, force_update=False, using=None, update_fields=None):
image_asset = img.open(self.image)
image_name = uuid.uuid4()
image_asset.thumbnail((1200, 1200), img.ANTIALIAS)
fi_io = io.BytesIO()
image_asset.save(fi_io, format='JPEG', quality=90)
self.image = InMemoryUploadedFile(
fi_io,
'ImageField',
'%s.jpg' % image_name,
'image/jpeg',
sys.getsizeof(fi_io), None
)
super(Image, self).save(force_update=force_update)
Всякий раз, когда я пытаюсь сохранить изображение, я получаю эту ошибку (точный размер зависитв загруженном файле):
ValueError: Size 3984 was specified but the file-like object only had 3862 bytes remaining.
Без этого кода изображение сохраняется нормально.Также при переключении на хранилище S3 этот точный код работает без проблем.