Как манипулировать/сжать загруженное изображение и сохранить его в AWS S3 с помощью boto3

Я хочу обработать/сжать загруженное изображение, а затем сохранить его на S3 bucket. Вот что я пробовал до сих пор:

S3 = boto3.client("s3", aws_access_key_id=settings.ACCESS_KEY_ID,aws_secret_access_key=settings.SECRET_ACCESS_KEY)
image = Image.open(img) 
outputIoStream = BytesIO() 
temp_image = image.resize((1020, 573)) 
temp_image.save(outputIoStream, format='PNG', quality=60) 
outputIoStream.seek(0) img = InMemoryUploadedFile(outputIoStream, 'ImageField', " 
    {}.png".format(img.name.split('.')[0]), 'text/plain', sys.getsizeof(image), None) 
key = f"post/" + str(request.user.id) + "/" + str(img) 
S3.put_object(Bucket="zappa- 
      legends", Body=img, Key=key)

Я получаю следующую ошибку:

An error occurred (BadDigest) when calling the PutObject operation (reached max retries: 4): The Content-MD5 you specified did not match what we received.

Что нужно делать, чтобы избежать таких ошибок?

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