У меня проблема с загрузкой изображений в DO Spaces, размер которых изменен с помощью PILL

Я загружаю изображения на Digital Ocean Spaces с помощью boto3. Все работает очень хорошо, пока я не добавлю PILL.

В django view у меня есть такой код, когда я получаю изображение:

images = request.FILES.getlist('images')
for index, image in enumerate(images):
    size = image.size
    content_type = image.content_type
    file_name = image.name

Я могу видеть всю информацию о каждом изображении.

Для загрузки изображения я использую этот метод, который тоже работает:

def upload_file(self, key, file, content_type, acl='private'):
    client = self.default_session_client()
    client.put_object(
        Bucket=BUCKET_NAME,
        Key=key,
        Body=file,
        ACL=ACL[acl],
        ContentType=content_type,
        Metadata={
            'x-amz-meta-my-key': '*****'
        }
    )

Проблема начинается, когда я вызываю этот другой метод для изменения размера изображения, даже если я просто оставляю метод te с

pillow_image = Image.open(image)

Я получаю ошибку.

from PIL import Image

def resize_maintain_its_aspect_ratio(image, base_width):
    pillow_image = Image.open(image)
    width_percent = (base_width / float(pillow_image.size[0]))
    height_size = int((float(pillow_image.size[1]) * float(width_percent)))
    resized_image = pillow_image.resize((base_width, height_size), Image.ANTIALIAS)
    return resized_image

Итак, ошибка заключается в том, что (даже если я использую Image.open(image)) я вижу следующее:

  • Произошла ошибка (BadDigest) при вызове операции PutObject (достигнуто максимальное количество повторных попыток: 4): Unknown

Кто-нибудь знает, в чем проблема?

Вернуться на верх