在插入钩子中获取gridfs文件

问题描述:

我正在使用前夕制作文件索引服务。在插入钩子中获取gridfs文件

我所有的藏品类型:

DOMAIN = { 
"file_collection" : { 
    ... 
    'schema' : { 
     'file': {'type': 'media'}, 
     'meta': {'type': 'dict', 
      schema: {...whatever it is I want to index...} 
      } 
     } 
    }, 
} 

我想用一个on_insert钩打开文件,提取一些数据和填充此文档的元字典。

我还没有能够访问或查找前夕应用程序对象中的任何gridFS对象:如何访问文档内容?

谢谢!

好吧,这是我我后来调查中得知:

from eve import Eve 
from flask import current_app 
from eve.io.mongo.media import GridFSMediaStorage 


def file_collection_on_insert(documents): 
    gridfs = GridFSMediaStorage(app=current_app) 
    #do something with gridfs: eg: gridfs.get(file_id) 

app = Eve() 
app.on_insert += file_collection_on_insert 
app.run() 

===================

编辑:

事件更快和更容易获得媒体:

from flask import current_app as app 

def file_collection_on_insert(documents): 
    #get the file_id 
    app.media.get(file_id) 

瞧!