在Mongodb中以GridFSB方式存放文件有两种方式:1、命令行方式mongofiles 2、客户端驱动编程(以Java为例)
1、命令行方式mongofiles
在bin目录下有一个命令mongofiles.exe,即可完成命令行下向Mongodb数据库中插入文件数据。这里以前述所搭的4个分片,每分片3个复制集,3个ConfigSever ,1个路由节点的Windows的模拟集群为例。
D:/mongodb-win32-i386-1.8.0/bin>mongofiles.exe -host 127.0.0.1:50000 -d wlb put mongodump.exe
connected to: 127.0.0.1:50000
added file: { _id: ObjectId('4d91dbc1fb02c495a0a479d7'), filename: "mongodump.exe", chunkSize: 262144, uploadDate: new Date(1301404609850), md5: "647dcae88077e6
fa2bb3be6b0cdebb07", length: 3271680 }
done!
向数据库wlb中插入一个文件,即Mongodb/bin/mongodump.exe,所使用的Mongodb集群的路由节点为127.0.0.1,端口为50000,其中put为命令,表示向Mongodb中上传文件,也存在get、delete两个其它命令,分别表示取得文件和删除文件。
以如下命令启动mongo,进入wlb数据库,执行 db.fs.files.find()即可看到GridFS中的文件列表.
D:/mongodb-win32-i386-1.8.0/cmd>cd d:/mongodb-win32-i386-1.8.0/bin
D:/mongodb-win32-i386-1.8.0/bin>call mongo.exe 127.0.0.1:50000/admin
MongoDB shell version: 1.8.0
connecting to: 127.0.0.1:50000/admin
> use wlb
switched to db wlb
> db.fs.files.find()
{ "_id" : ObjectId("4d91dbc1fb02c495a0a479d7"), "filename" : "mongodump.exe", "chunkSize" : 262144, "uploadDate" : ISODate("2011-03-29T13:16:49.850Z"), "md5" :
"647dcae88077e6fa2bb3be6b0cdebb07", "length" : 3271680 }
2、以Java API来存取文件
这里以mongo-2.5.jar为例,代码如下:
- package com.zhangzk.mongodb;
- import java.io.File;
- import java.net.UnknownHostException;
- import java.util.Date;
- import java.util.List;
- import com.mongodb.BasicDBObject;
- import com.mongodb.DB;
- import com.mongodb.DBCollection;
- import com.mongodb.DBCursor;
- import com.mongodb.DBObject;
- import com.mongodb.Mongo;
- import com.mongodb.MongoException;
- import com.mongodb.gridfs.GridFS;
- import com.mongodb.gridfs.GridFSInputFile;
- public class MongoDBClientTest {
- public static void main(String[] args) {
- // initData();
- // query();
- initData4GridFS();
- }
- private static void initData4GridFS() {
- long start = new Date().getTime();
- try {
- Mongo db = new Mongo("127.0.0.1", 50000);
- DB mydb = db.getDB("wlb");
- File f = new File("D://study//document//MySQL5.1参考手册.chm");
- GridFS myFS = new GridFS(mydb);
- GridFSInputFile inputFile = myFS.createFile(f);
- inputFile.save();
- DBCursor cursor = myFS.getFileList();
- while(cursor.hasNext()){
- System.out.println(cursor.next());
- }
- db.close();
- long endTime = new Date().getTime();
- System.out.println(endTime - start);
- System.out.println((endTime - start) / 10000000);
- }catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
相关推荐
Mongodb基于GridFS存储文件,通过流的方式存储文件图片,以及读取功能。本人亲自测试、编写。值得信赖
Vue+axios+Spring Boot+mongoDB 基于Mongo图片存储和基于GridFS的文件存储.zip
功能:基于mongodb gridfs实现简单文件上传、下载、搜索、删除。 开发环境:VS2012 mongodb驱动:官方Driver 上传控件:jquery uploadify 疑问:sort()方法可能有点问题 PS:有问题可以留言,欢迎交流~
2,Nginx_GridFS 这是一个基于MongoDB C驱动程序的Nginx插件。 编译代码并安装我在此仓库中制作了一个快速,使用sudo运行它。 准备好Nginx之后,修改/usr/local/nginx/conf/nginx.conf下的配置文件(如果您没有更改...
:基于可靠性的需求,各个公司对容灾的要求也是越来越高。单在数据中心备份副本明显已经跟不上...LogicMonitor——用于实体、虚拟以及云环境基于SaaS的监视方案,我们希望用户数据文件的副本在数据中心内外都有储存。
基于 webtorrent、assetgraph 和 mongodb 的 gridfs 构建的分布式、不可审查的网页归档器 尚未完成/可用 当前状态/进展 工作(但可能需要清理) 抓取页面并将资产保存到 通过包含存档页面所有资产的 从检索和提供...
基于node.js、vue、mongodb等技术构建的web系统,界面美观,功能齐全,适合用作毕业设计、课程设计作业等,项目均经过测试,可快速部署运行! 基于node.js、vue、mongodb等技术构建的web系统,界面美观,功能齐全,...
Multer的GridFS存储引擎 存储引擎,用于将上传的文件直接存储到MongoDb。 :fire: 产品特点与MongoDb版本2和3。 真正简单的API。 与等于或大于10的任何Node.js版本兼容。 缓存基于url的连接。 与猫鼬连接对象兼容。 ...
该库使用 MongoDB GridFS 编程接口来存储文件和文件夹信息的标准集合。 MongoFilesystem 中的文件夹和文件有一个面向对象的表示,以及用于对它们执行操作的丰富 API。 还有用于 JSON/HTML/XML 的文件/文件夹渲染器...
spingboot项目,数据库用的是mongoDB,然后发现它里面有个存储文件用的GirdFs,感觉还是挺好用的,但是,网上又没找到详细教程,于是自己写了一个demo,这是一个基于springboot的gridFS上传文件demo
使用Spring Data MongoDB和MongoDB 3.0 17.1.1。配置选项 17.1.2。WriteConcern和WriteConcernChecking 17.1.3。认证 17.1.4。服务器端验证 17.1.5。其他事情要注意 附录 附录A:命名空间参考 元素 附录B:Poppers...
gridfs-locks gridfs-locks实现了基于分布式,专门用于使 MongoDB 的文件存储。 它是一个建立在之上的 ,并且兼容原生的实现。 注意:如果您使用并需要此包的锁定功能(并且您可能这样做...请参阅本自述文件底部的...
第6章 GridFS存储文件 6.1 为什么要用GridFS 6.2 如何实现海量存储 6.3 语言支持 6.4 简单介绍 6.5 命令行工具 6.6 内部原理 6.7 本章小结 第7章 MapReduce统计 7.1 Map函数 7.2 Reduce函数 ...
cdn, 在fly图像裁剪/调整,通过 MongoDb with的内容传递网络 #CDN 上的GridFs 这个实用工具可以作为独立的内容传递网络,使用MongoDB作为后端文件存储。 它可以从源代码生成,也可以作为已经编译的二进制文件安装。...
第6章 GridFS存储文件 6.1 为什么要用GridFS 6.2 如何实现海量存储 6.3 语言支持 6.4 简单介绍 6.5 命令行工具 6.6 内部原理 6.7 本章小结 第7章 MapReduce统计 7.1 Map函数 7.2 Reduce函数 ...
所有文件都以加密方式存储在MongoDB的GridFS中。安装运行(本地)步骤1 在运行Lockbox之前,您需要安装以下两个依赖项:第2步安装MongoDB之后,请确保使用有效的MongoDB连接字符串设置环境变量MONGODB_URI 。 例子...
什么是MongoDB MongoDB是基于文档的存储的(而非表),是一个介于关系数据库和非...因为Mongo主要是支持海量数据存储的,所以Mongo还自带了一个出色的分布式文件系统GridFS,可以支持海量的数据存储。由于Mongo可以支持
用于[Ghost博客平台]( )的自定义存储模块,该模块允许将图像存储在mongodb中而不是本地文件系统中,这很有用,例如,在heroku上托管ghost博客时。 基于幽灵0.6.4。 不使用GridFS-如果图像大小超过16MB,则无法...
1、本课程结合实际C/C++项目案例以实战为主,从MongoDB开发环境的安装配置到基础常用的操作、大尺寸文件GridFS的存储、排序、索引、聚合、在多线程中使用以及基于MongoDB的考试系统项目,所有功能均有源代码和文档...