在插入挂钩中获取 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)
瞧!
我正在使用 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)
瞧!