Couchdb python - 使用put_attachment上传附件
我正在尝试用Python把一张图片附加到CouchDB中的一个已有文档上。虽然图片确实附加上了,但出现了一个错误信息:“无法显示,因为它包含错误”。而且图片的长度也不对。是不是代码有问题呢?那我该怎么做才能正确附加呢?
如果我直接在Futon中附加:
"_attachments": {
"Scan.png": {
"content_type": "image/png",
"revpos": 35,
"digest": "md5-t20y23eHOJOMDAwCcrTjOw==",
"length": 199281, // in python "length": 8
"stub": true
}
}
import couchdb
couch = couchdb.Server('http://a73657.berlin.de:5984')
db = couch['vl'] # existing
json_file = "test_file"
doc = db.get(json_file)
db.put_attachment(doc, 'Scan.png', 'Scan.png', content_type="image/png;base64")
2 个回答
0
根据文档的说明,content
这个参数(第二个参数)可以是“一个像文件一样的对象或者一个字符串”。你提供的是第二种情况,所以你的附件内容就是字符串“Scan.png”(因此它的长度是8个字符)。
你可能想用的东西更像这样:
db.put_attachment(doc, open('Scan.png', 'rb'), 'Scan.png', content_type="image/png;base64")
0
我找到了解决办法:
content=pathlib.Path('C:/Users/ute/python/TL1/Scan.png').read_bytes()
db.put_attachment(doc, content, "Scan.png" , content_type="image/png")