2016-11-25 45 views
0

我正在使用前夕製作文件索引服務。在插入鉤子中獲取gridfs文件

我所有的藏品類型:

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

我想用一個on_insert鉤打開文件,提取一些數據和填充此文檔的元字典。

我還沒有能夠訪問或查找前夕應用程序對象中的任何gridFS對象:如何訪問文檔內容?

謝謝!

回答

0

好吧,這是我我後來調查中得知:

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) 

瞧!