标签: gridfs

查询MongoDB GridFS元数据(Java)

我要做的是通过查询元数据字段来获取GridFS文件列表.例如,我有一个GridFS文件文档,如下所示:

{ "_id" : { "$oid" : "4f95475f5ef4fb269dbac954"} , "chunkSize" : 262144 , "length" : 3077 , "md5" : "f24ea7ac05c5032f08808c6faabf413b" , "filename" : "file_xyz.txt" , "contentType" :  null  , "uploadDate" : { "$date" : "2012-04-23T12:13:19.606Z"} , "aliases" :  null  , "metadata" : { "target_field" : "abcdefg"}}
Run Code Online (Sandbox Code Playgroud)

我想查询包含"target_field"="abcdefg"的所有文件.我创建了如下查询:

BasicDBObject query = new BasicDBObject("metadata", new BasicDBObject("target_field", "abcdefg"));
// gridFS Object Initialization skipped
List<GridFSDBFile> files = gridFs.find(query);
Run Code Online (Sandbox Code Playgroud)

该列表总是空的.否则查询文件名或uploadDate工作正常.是不是可以通过嵌套属性获取GridFS文件?

java mongodb gridfs

10
推荐指数
1
解决办法
1万
查看次数

GridFS比通常的FS更快吗?

我想知道将所有上传的文件存储在GridFS中是否比将它们存储在通常的文件系统上更快,例如Ext4(在读/写速度和平均服务器负载方面).

mongodb gridfs

9
推荐指数
1
解决办法
2623
查看次数

查询MongoDB GridFS?

我有一个博客系统,可以将上传的文件存储到GridFS系统中.问题是,我不明白如何查询它!

我正在使用Mongoose和NodeJS,它还不支持GridFS,所以我使用实际的mongodb模块进行GridFS操作.SEEM不像查询常规集合中的文档那样查询文件元数据.

将元数据存储在指向GridFS objectId的文档中是否明智?能够轻松查询?

任何帮助都将非常感激,我有点卡住:/

mongoose mongodb node.js gridfs

9
推荐指数
2
解决办法
2万
查看次数

如何以最简单的方式备份MongoDB GridFS数据库?

就像标题所说,我有一个MongoDB GridFS包含各种文件类型的数据库(例如,text,pdf,xls),我想以最简单的方式备份这个数据库.

复制不是一种选择.我希望以通常的数据库方式将数据库转储到文件然后备份该文件(如果需要可以用于100%以后恢复整个数据库).可以这样做mongodump吗?我还希望备份是增量备份.那将是一个问题GridFSmongodump

最重要的是,这是最好的方式吗?我不是那么熟悉MongoDB,会mongodump工作,以及mysqldump与做MySQL?什么是最佳实践MongoDB GridFS和增量备份?

Linux如果这有任何区别,我正在跑步.

backup mongodb gridfs

9
推荐指数
1
解决办法
7980
查看次数

Mongodb base64图像vs gridfs

我正在使用mongodb,我想在我的服务器中存储一些缩略图.什么是最好的?使用GridFS或将这些图像转换为base64并将它们直接存储在文档中.

base64 mongodb gridfs

9
推荐指数
2
解决办法
1万
查看次数

上传后,使用ExpressJS将文件存储在Mongo的GridFS中

我已经开始使用expressJS构建REST api.我是节点新手所以请耐心等待.我希望能够让用户使用post/upload路由直接将文件上传到Mongo的GridFS.

根据我在expressJS文档中的理解,req.files.image对象在上传后的路径中可用,其中还包括路径和文件名属性.但是,我如何准确读取图像数据并将其存储到GridFS中?

我已经研究过gridfs-stream,但我无法将两端绑在一起.我是否首先需要读取文件,然后将该数据用于写入流管道?或者我可以只使用express中的文件对象并使用这些属性构建写入流吗?任何指针将不胜感激!

mongodb gridfs express

9
推荐指数
1
解决办法
8867
查看次数

使用Node.js将Base64图像转换为原始二进制文件

我发现的帖子与我正在寻找的内容很接近,但我无法成功实现我想要的内容.这是一般流程:

  1. 使用其余的场地数据提交照片,作为base64数据
  2. 剥离数据前缀(如果存在),所以我只有图像base64数据

var base64data = venue.image.replace(/^data:image\/png;base64,|^data:image\/jpeg;base64,|^data:image\/jpg;base64,|^data:image\/bmp;base64,/, '');
Run Code Online (Sandbox Code Playgroud)
  1. 通过MongoDB将Base64数据存储在GridFS中(我正在使用gridfstore)
  2. 然后,我想通过URL将请求的图像作为原始图像文件检索.

// generic images route
server.get(version+'/images/:id', function(req, res) {
  gridfstore.read( req.params.id, function(error,data) {
    res.writeHead(200, {
      'Content-Type': 'image/jpeg',
      'Content-Length': data.buffer.length
    });

    res.end(data.buffer);
  });
});
Run Code Online (Sandbox Code Playgroud)

基本上,此方法返回存储在GridFS中的Base64字节.我尝试了其他方法,但他们没有返回原始图像.

我想使用以下网址提取图片:

http://[localhost]/1/images/11dbcef0-257b-11e3-97d7-cbbea10abbcb
Run Code Online (Sandbox Code Playgroud)

以下是浏览器跟踪的屏幕截图: 浏览器跟踪

javascript base64 image node.js gridfs

9
推荐指数
1
解决办法
2万
查看次数

使用Node + Jade + Express渲染存储在Mongo(GridFS)中的图像

我使用GridFS在Mongo中存储了一个小的.png文件.我想使用Node + Express + Jade在我的网络浏览器中显示图像.我可以检索图像很好,例如:

FileRepository.prototype.getFile = function(callback,id) {
this.gs = new GridStore(this.db,id, 'r');
this.gs.open(callback);
};
Run Code Online (Sandbox Code Playgroud)

但我不知道如何使用Jade View Engine渲染它.文档中似乎没有任何信息.

谁能指出我正确的方向?

谢谢!

mongodb node.js gridfs express pug

8
推荐指数
2
解决办法
9671
查看次数

使用pymongo在Mongodb的GridFS中保存文件会导致截断文件 - Windows 7上的python 2.7

使用pymongo在Mongodb的GridFS中保存文件会导致截断文件.

from pymongo import MongoClient
import gridfs
import os

#just to make sure we aren't crazy, check the filesize on disk:
print os.path.getsize( r'owl.jpg' )

#add the file to GridFS, per the pymongo documentation: http://api.mongodb.org/python/current/examples/gridfs.html
db = MongoClient().myDB
fs = gridfs.GridFS( db )
fileID = fs.put( open( r'owl.jpg', 'r')  )
out = fs.get(fileID)
print out.length
Run Code Online (Sandbox Code Playgroud)

在Windows 7上,运行此程序会生成以下输出:

145047
864
Run Code Online (Sandbox Code Playgroud)

在Ubuntu上,运行此程序会生成此(正确)输出:

145047
145047
Run Code Online (Sandbox Code Playgroud)

不幸的是,我正在开发的应用程序是针对Windows操作系统的......

任何帮助,将不胜感激!

所以你可以更严格地再现我的例子,'owl.jpg'是从以下网址下载的:http://getintobirds.audubon.org/sites/default/files/photos/wildlife_barn_owl.jpg

python mongodb pymongo gridfs

8
推荐指数
2
解决办法
8243
查看次数

在DB与文件系统中存储图像,以便在网站中为用户上传的图像

我正在建立一个允许用户上传图像的网站.每个用户可以使用的最大空间量也受到限制.

我有两个想法.

  1. 使用GridFS将图像存储在像mongoDB这样的NoSQL数据库中.
  2. 将图像存储在文件系统中并将路径存储在DB中.

以上哪个更好?为什么?

upload web-services image mongodb gridfs

8
推荐指数
1
解决办法
1418
查看次数