在插入挂钩中获取 gridfs 文件

getting gridfs file in insert hook

我正在使用 eve 制作文件索引服务。

我所有的 collections 都是以下类型:

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

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

我无法在 eve 应用程序中访问或找到任何 gridFS object object:如何访问文档内容?

谢谢!

好的,这是我在后续研究中了解到的:

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)

瞧!