2013-09-23 42 views
1

我試圖存儲在database。這是圖像我的代碼獲取圖像:卡桑德拉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中存儲圖像或獲取圖像的方式存在錯誤。

回答

4

我認爲你遇到了這個問題:https://github.com/datastax/python-driver/pull/39。我敢肯定,cqlengine沒有更新以利用這個修復(我今天合併了pull請求),但至少可以解釋問題所在。

作爲一種變通方法,你也許能夠做這樣的事情:

from binascii import hexlify 

hex_image = '0x' + hexlify(myImage) 
myTable.create(..., image=hex_image) 
+0

十分感謝了很多...我還沒有測試,但它似乎是正確的 –