我正在尝试将图像存储在数据库中。这是我获取图像的代码:
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中存储图像或获取图像的方式存在错误。
答案 0 :(得分:4)
我认为你遇到了这个问题:https://github.com/datastax/python-driver/pull/39。我确定cqlengine尚未更新以利用该修复(我今天刚刚合并了拉取请求),但这至少解释了问题所在。
作为一种解决方法,您可以执行以下操作:
from binascii import hexlify
hex_image = '0x' + hexlify(myImage)
myTable.create(..., image=hex_image)