Накануне Python: как хранить изображения, которые генерируются на сервере?
У меня есть маленький API Python Eve, который принимает и успешно обрабатывает изображения как часть из нескольких частей. Как часть 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
но кажется, что она хранит строку, закодированную в формате base 64, в основном документе монго (например, так: "chip" : "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQEBAQIBAQECAgICAgQDAgICAgUEBAMEBgUGBg...
), а не в GridFS, где хранится исходное изображение.
Как лучше всего использовать Python Eve для принудительного хранения поля / файла в GridFS?
Спасибо большое.