尝试使用fs.get函数获取mongoDB中的块

时间:2015-06-29 04:08:27

标签: python node.js mongodb gridfs gridfs-stream

我正在尝试使用GridFS获取存储在mongoDB中的文件。

我编写了这个函数,用于使用GridFS将文件存储到mongoDB中

def write_file_object(file_name):
with open(file_name) as mydoc:
    b = fs.put(mydoc, content_type="text/plain", filename="file")
    print b

这个函数通过传递文件ID来获取mongoDB中的文件,对于这种情况是5590c2a71d41c81703458433。

def get_file_object(file_id):
out = fs.get(file_id).read()
print out   

但我一直收到这个错误: gridfs.errors.NoFile:gridfs集合中没有文件集合(数据库(MongoClient('localhost',27017),u'gridfs_example'),u'fs.files')与_id'5590c2a71d41c81703458433'

获取文件的任何帮助?我的方法不对吗?

1 个答案:

答案 0 :(得分:0)

您需要将id字符串转换为ObjectId

from bson.objectid import ObjectId

def get_file_object(file_id):
  out = fs.get(ObjectId(file_id)).read()
  print out