Cassandra 2 - CQLEngine: ошибка сохранения изображений

Я пытаюсь хранить изображения в базе данных. Это мой код для получения изображения:

image = Image.open(...a resource on web...)
imageData = StringIO.StringIO()
image.save(imageData, image.format)
myImage = imageData.getvalue()

Но при попытке сохранить в базе данных это:

myTable.create(...some fields , image=myImage)

Я ловлю исключение с этим сообщением:

Bad Request: Invalid STRING constant(ffd8ffe0.. and so on...adss4das) for image of type blob

Ранее я сохранял изображения по этим кодам с помощью Cassandra1.2.9!

Но когда я установил Cassandra2.0, возникла эта проблема!

Я проверяю свой код построчно и уверен, что ошибка в способе сохранения изображений в C2.0 или получении изображения.


person ABS    schedule 23.09.2013    source источник


Ответы (1)


Я думаю, у вас проблемы с этим: https://github.com/datastax/python-driver/pull/39. Я уверен, что cqlengine еще не обновлен, чтобы воспользоваться этим исправлением (сегодня я только что объединил запрос на включение), но это, по крайней мере, объясняет, в чем проблема.

В качестве обходного пути вы можете сделать что-то вроде:

from binascii import hexlify

hex_image = '0x' + hexlify(myImage)
myTable.create(..., image=hex_image)
person Tyler Hobbs    schedule 24.09.2013
comment
Отлично! Большое спасибо... Я еще не проверял это, но кажется, что это правильно - person ABS; 25.09.2013