1

我正在尝试将图像存储在数据库中。这是我获取图像的代码:

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 中存储图像或获取图像的方式存在错误。

4

1 回答 1

4

我认为您对此有疑问:https ://github.com/datastax/python-driver/pull/39 。我确定 cqlengine 尚未更新以利用该修复(我今天刚刚合并了拉取请求),但这至少解释了问题所在。

作为一种解决方法,您可以执行以下操作:

from binascii import hexlify

hex_image = '0x' + hexlify(myImage)
myTable.create(..., image=hex_image)
于 2013-09-24T17:54:40.660 回答