2016-11-25 12 views
0

私はeveを使用してファイルインデックスサービスを作成しています。インサートフックでgridfsファイルを取得する

すべての私のコレクションは種類のものである:

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

私は、ファイルを開くためにon_insertフックを使用する一部のデータを抽出し、この文書のメタ辞書を移入したいと思います。

eveアプリケーションオブジェクト内のどのgridFSオブジェクトにもアクセスすることはできませんでした。文書の内容にアクセスするにはどうすればよいですか?

ありがとうございます!

答えて

0

[OK]を、これは私が私のその後の研究中に学んだことです:

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) 

ほら!

関連する問題