ValueError: Fileobj должен реализовывать чтение
Я конвертирую gif-изображения в jpgs с использованием библиотеки PIL и загружаю их в s3. Я получаю эту ошибку:
ValueError: Fileobj должен реализовывать чтение
Вот часть кода, которая читает изображение и конвертирует его в jpgs:
im = Image.open(url)
i = 0
mypalette = im.getpalette()
try:
while 1:
im.putpalette(mypalette)
new_im = Image.new("RGBA", im.size)
new_im.paste(im)
key = 'img'+str(i)+'.jpg'
in_mem_file = io.BytesIO()
new_im.save(in_mem_file, "JPEG")
s3.upload_fileobj(in_mem_file.getvalue(), bucket, key)
i += 1
im.seek(im.tell() + 1)
except EOFError:
pass
Я использую io.BytesIO для чтения байтов, но все равно получаю ту же ошибку. если я удаляю getvalue из in_mem_file, пустые изображения сохраняются в корзине.
0 ответов
Восстановить изображение в буфер BytesIO
with BytesIO() as in_mem_file:
image.save(in_mem_file, format=image.format)
in_mem_file.seek(0)
s3client.upload_fileobj(image,BUCKET, path)