【问题标题】:Cassandra 2 - CQLEngine : Store Images errorCassandra 2 - CQLEngine:存储图像错误
【发布时间】:2013-09-25 05:32:39
【问题描述】:

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

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

【问题讨论】:

    标签: python django cassandra cql cqlengine


    【解决方案1】:

    我认为您对此有疑问: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-28
    • 1970-01-01
    • 2019-01-13
    • 1970-01-01
    • 2021-02-06
    • 2017-07-22
    • 1970-01-01
    相关资源
    最近更新 更多