我有一个小的python eve API,它接受并成功处理图像作为多部分的一部分。作为POST的一部分,我实现了一个事件处理程序(我附加到eve_app.on_insert_image
),它将部分图像切割成芯片。以下是我的架构中相关的部分:
...
'things': {
'type': 'list',
'schema' : { 'type': 'dict',
'schema' : {
'chip' : { 'type' : 'media' },
'image_id' : { 'type' : 'string' },
'image_x' : { 'type' : 'integer' },
'image_y' : { 'type' : 'integer' }
}
}
},
...
芯片被设计为存储在对象列表中,其中一个字段的类型为media
。在事件处理程序中,我目前这样做:
retval, buff = cv2.imencode('.jpg', self.chip)
jpeg_as_text = base64.b64encode(buff)
return jpeg_as_text
但似乎将基本64位编码的字符串存储在主mongo文档中(如此:"chip" : "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQEBAQIBAQECAgICAgQDAgICAgUEBAMEBgUGBg...
),而不是存储源图像的GridFS中。
在Python Eve中,强制将字段/文件存储在GridFS中的最佳方法是什么?
非常感谢。