Это то, что я обычно использую. Может быть, это будет работать и для вас:
def image_from_s3(bucket, key):
bucket = s3_resource.Bucket(bucket)
image = bucket.Object(key)
img_data = image.get().get('Body').read()
return Image.open(io.BytesIO(img_data))
И в вашем обработчике вы выполняете это:
img = image_from_s3(image_bucket, image_key)
img
должен быть образом Подушки, если он успешно выполняется.