问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

MongoC++ GridFS 操作

发布网友 发布时间:2022-04-07 22:48

我来回答

2个回答

懂视网 时间:2022-04-08 03:09

搜索了N多文档,基本上都一样,期间遇到很多问题;

下面是整理的一份搭建文档: 


摘要 nginx-gridfs是一个nginx的扩展模块,用于支持直接访问MongoDB的GridFS文件系统上的文件并提供 HTTP 访问。

 

一、安装mongodb

MongoDB在linux下是无需安装的,从官网上下载下安装包后解压,直接执行mongod,就可以启动MongoDB服务器,当然mongod还有很多的启动选择项,运行mongod --help就可以查看所有的选择项。

注:很多人搭建完后,发现访问不了图片和文件,跟Mongodb的配置有很多关系;附上我成功配置的mongodb,直接解压可用;点击下载mongodb

例如:(下载我上面的包,解压,下面命令直接启动服务,亲测可用)

 ./mongod -port 10001 --dbpath ../data/ --logpath ../log/mongodb.log --fork

 

停止MongoDB

千万要强调的是千万不要使用kill -9去关闭mongod!这样数据库会不理一切直接杀死该进程,会使得数据文件损坏。
稳妥的方法是使用kill -2 pid去关闭mongod,也就是当mongod进程接受到关闭指令后会等待当前运行操作或文件分配等操作完毕后,关闭所有打开的连接,并将缓存的数据刷新到磁盘后才正式关闭。
最稳妥的方式是使用shutdown命令来结束

> use admin
switched to db admin
> db.shutdownServer();

 

 

二、安装nginx及nginx-gridfs

依赖库、工具

1

2

# yum -y install pcre-devel openssl-devel zlib-devel

# yum -y install gcc gcc-c++

如上几个依赖库,如果自动安装不成功,可手动安装;

Pcre下载https://sourceforge.net/projects/pcre/files/pcre/

下载nginx-gridfs源码

1

2

3

4

5

# git clone https://github.com/mdirolf/nginx-gridfs.git

# cd nginx-gridfs

# git checkout v0.8

# git submodule init

# git submodule update

如上操作方法,可本地GIT下来再上传到服务器,也可直接在服务器GIT

下载nginx源码,编译安装。

1

2

3

4

5

# wget http://nginx.org/download/nginx-1.4.7.tar.gz

# tar zxvf nginx-1.4.7.tar.gz

# cd nginx-1.4.7

# ./configure --prefix=/usr/local/nginx   --with-openssl=/usr/include/openssl --add-module=../nginx-gridfs/

# make -j8 && make install -j8

 

修改/usr/local/nginx/conf/nginx.conf配置文件。

注:这里说明下,nginx有两个nginx.conf的配置文件,勿配错;

 

1

2

3

4

5

6

7

location /girdfstest/ {  

    gridfs pics

        field=_id

        type=objectid;

 

    mongo 127.0.0.1:10001;

}


关于这里的配置,简单说明下:

gridfstest:访问地址

pics:数据库

mongo 127.0.0.1:10001  #mongo的服务器地址及端口

--------------------------------------


启动nginx服务

1

# /usr/local/nginx/sbin/nginx

重新加载 /usr/local/nginx/sbin/nginx -s reload

 

 

3. 测试


上传一个文件

root@d1:~#./mongofiles put 1.jpg -db pics -t jpg            
列出库中文件:

root@d1:~# mongofiles list -db pics

 具体mongofiles使用可百度搜索下

或者直接./mongofiles --help查看帮助

 

 

浏览器访问:http://192.168.4.156/girdfstest/1.jpg

如果可以访问图片,则配置成功;

 


注意事项:

安装过程中可能会遇到各种各样的错误,具体看环境不同,应对处理;

主要注意点

1. Nginx启动参数,需关联nginx-gridfs目录

2. Mongodb尽量不用默认端口27017,改用其他端口(安装过程遇到默认端口访问不了,不知道什么原因)

3. Nginx.conf配置,参数上面文档说明

4. 如果配置不成功,访问不了图片;多看看nginx的错误日志,会有很多收获


安装过程中,如果还有其他问题,可以看看我前面写的几篇文档;

 

用nginx-gridFS读取MongoDB的图片及文件(为什么你老是配不成功?)

标签:mongodb   nginx+gridfs   nginx读取mongodb图片   

热心网友 时间:2022-04-08 00:17

GridFS是一种在MongoDB中存储大二进制文件的机制。使用GridFS存文件有如下几个原因:
利用Grid可以简化需求。要是已经用了MongoDB,GridFS就可以不需要使用独立文件存储架构。
GridFS会直接利用业已建立的复制或分片机制,所以对于文件存储来说故障恢复和扩展都很容易。
GridFS可以避免用于存储用户上传内容的文件系统出现的某些问题。例如,GridFS在同一个目录下放置大量的文件是没有任何问题的。
GridFS不产生磁盘碎片,因为MongoDB分配数据文件空间时以2GB为一块。
使用场景:如果你的系统有如下情景:
1) 有大量的上传图片(用户上传或者系统本身的文件发布等)
2) 文件的量级处于飞速增长,有可能打到单机操作系统自己的文件系统的查询性能瓶颈,甚至超过单机硬盘的扩容范围.
3) 文件的备份(不适用gridfs这种三方也可以做,但是不尽方便),文件系统访问的故障转移和修复..
4) 文件的索引,存储除文件本身以外还需要关联更多的元数据信息(比如,不仅仅存储文件,还要保存一些文件的发布式作者/发布时间/文件tag属性等等自定义信息)并且需要索引的...
5) 基于4),对文件的分类模糊,如果采用操作系统的文件系统,文件夹分类关系混乱或者无法分类时..
6) 当前系统是基于web的,对图片的访问根据url了规则路由的..(普通文件系统也可以)
7) 文件尺寸较小,而且众多,且文件有可能被迁移/删除等..
在Mongodb中以GridFSB方式存放文件有两种方式:
1、命令行方式mongofiles 2、客户端驱动编程
1、命令行方式mongofiles
mongofiles命令行下向Mongodb数据库中插入文件数据。
mongofiles -host 127.0.0.1:27017 -d mydb put 文件名
如何理解大文件存储规范gridfs

由于文件被分割存储,读取整个文件可能需要更多的数据库操作,这可能会影响性能;其次,对于非常小的文件,使用GridFS可能不是最优选择,因为每个文件都需要额外的元数据存储;最后,在设计和实施GridFS存储方案时,需要考虑文件的安全性、备份和恢复策略以及文件访问权限等问题。

Load Port、SMIF

威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层...

mongodb gridfs性能

1) 普通插入性能 (插入的数据每条大约在1KB左右)2) 批量插入性能 (使用的是官方C#客户端的InsertBatch),这个测的是批量插入性能能有多少提高 。3) 安全插入功能 (确保插入成功,使用的是SafeMode.True开关),这个测的是安全插入性能会差多少。4) 查询一个索引后的数字列,返回10条记录(也...

gridfsdbfile转为file 怎么获得byte

Mongodb使用GridFS存储文件 先来看一个简单的例子:public class Mongofs { private static final String USER = "rechard";private static final String PASS = "root";public static void main(String[] args) throws Exception { Mongo m = new Mongo("localhost");DB db = m.getDB("newdb"...

MongoDB管理与开发精要目录

第12章 分片与扩展 12.1 Sharding基础与构建 12.3 Sharding维护与管理 12.4 Replica Sets + Sharding案例 12.6 章节小结 开发篇 第14章 C#开发接口 14.1 快速入门与基础操作 14.4 高级查询与GridFS操作 14.6 章节小结 第15章 Java开发接口 15.1 快速入门与基础操...

10个顶级Mongodb GUI工具,以图形方式管理数据库

支持iOS和Android平台。使用Node.js,Express和Bootstrap3编写的基于Web的MongoDB管理界面。它允许连接多个数据库;查看/添加/删除数据库,集合和文档;预览音频/视频/图像资产;GridFS支持 - 添加/获取/删除难以置信的大文件;在文档中使用BSON数据类型,Mobile / Responsive - Bootstrap以及更多功能。

bugumongo主要功能

对于文件管理,bugumongo拥有功能强大的GridFS文件系统,支持文件夹功能,能够方便地进行文件的重命名、移动和排序。上传、读取文件的操作也相当简单,方便开发者管理大量的文件资源。更值得一提的是,bugumongo还支持图片处理功能,包括图片加水印和图片压缩,这在处理用户上传的图片时尤为实用。同时,它允许通过...

Mongodb在存储文件的时候,会不会造成一个本来300M的视频只存进去了100...

gridfs是由驱动完成的,不是mongodb自己完成的,要看你用的驱动的具体情况。我没有看过mongodb所有的驱动,但是正常来讲,驱动的gridfs应该是让你一部分一部分往gridfs的文件里写数据的,所以对gridfs来说,它应该不知道你这个视频有300,不管什么原因,你要是存到100就不继续往里存了,对gridfs来...

分片技术

分片策略分为垂直和水平两种方式,其中MongoDB作为一款杰出的文档数据库,凭借其易操作性和功能多样性(如索引支持、复杂查询、MapReduce和GridFS等),在云计算环境中如鱼得水,允许在服务器端执行脚本,并兼容多种编程语言。MongoDB的安装便捷,适应快速变化的云环境,它的应用范围广泛,旨在解决存储瓶颈...

什么叫嵌入式软件工程师需要哪些专业知识认证

5Gb空数据库大约占192Mb采用GridFS存储大数据或元数据(不是真正的文件系统)最佳应用场景:适用于需要动态查询支持;需要使用索引而不是map/rece功能;需要对大数据库有性能要求;需要使用CouchDB但因为数据改变太频繁而占满内存的应用程序 例如:你本打算采用MySQL或PostgreSQL,但因为它们本身自带的预定义栏...

非关系型数据库都有哪些

人们真的很享受分片、高级文本搜索、gridFS和map-reduce功能。惊人的性能和新特性使这个NoSQL数据库在我们的列表中名列第一。特点:提供高性能;自动分片;运行在多个服务器上;支持主从复制;数据以JSON样式文档的形式存储;索引文档中的任何字段;由于数据被放置在碎片中,所以它具有自动负载平衡配置;支持...

C.C C哩C哩 A或C哪个是内外循环 A.C C文件 C260L功能视频图解 C260L使用教程 奔驰C一键内外循环 c本
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
qzzn 如何升为科长 谁能给个qzzn论坛的邀请注册号啊 谁能给我一个qzzn 论坛会员账号? QZZN 论坛注册 qzzn论坛为什么不能注册了 魔兽真三改键如何设置改好? 真三高手的改键方式 2012 安徽省庐江县各所高中今年的中考预计录取分数线 庐江县一中二中三中招多少新生 庐江中考639分能上二中吗2011年 男楚辞、女诗经?有人从《庄子》里选出了三个好名字,你怎么看呢? 憋住不放的屁去哪了? 屁憋回去都去了哪里? 女性朋友在日常生活中为了自己的形象会憋屁,憋的屁到底去哪里了? 憋回去的屁哪去了? 憋住不放的屁,最后都去哪里了? 华为其他手机和荣耀play手机壳通用的吗 屁是如何产生的?憋回去的屁,最后又去往了何处? 华为荣耀play的后置指纹孔想遮住,应该买哪种型号的手机壳? 人类在公共场合憋回去的屁,最后都去了哪里了? 荣耀play3和荣耀8c手机壳适配么? 那些被我们憋回去的屁,最后究竟去了哪里? 被憋回去的屁,最后都去了哪里? 我在拼多多打算买一个手机壳,但买的时候发现只有荣耀play3型号,请问和荣耀20s手机壳通用吗? 憋住的屁都去哪了,憋屁会不会对身体有害? 华为荣耀PLAY3手机壳和ASK-AL00X手机壳有什么不一样? 憋住不放的屁哪里去了? 憋住的屁,到底会到哪里去? 如果一个人不放屁,那么憋回去的屁最后到了哪里? 人类憋回去的屁,最终它们都去了哪里呢? 减肥能喝仙姿果蔬酵素粉复合水果孝素粉吗? 颗粒非果冻梅原液果蔬酵素粉台湾复合酵素水果孝真的可以减肥吗? 果蔬复合粉和果蔬复合酶什么区别? 员工爆街电共享充电宝内幕,街头充电宝存在怎样不可告人的内幕? 充电宝刚买两天怎么就充不进电 充电宝充一夜充不满? 这个索尼的 放磁带的随身听是什么型号的 SONY的磁带随身听中,现在哪个型号待机时间长且音质不错?价钱一般多少?你喜欢的也可推荐哦! sony WM-EX921随身听线控哪儿有卖的? SONY随身听有哪些阿 索尼wm ex600磁带随身听怎么用 索尼随身听EX900电池是什么型号现在还有卖的吗? 索尼EX70随身听故障,懂行的师傅进! SONY的WM-EX615随身听音质还蛮不错的,但不知道比起EX2来,差距大吗 高中时姐姐给买了SONY的随身听EX-677,谁知道它的原装耳机型号是多少? 黑龙江省归档文件整理规则实施细则主要修订的内容包括哪几项 在windows7中对文件常见的管理有哪些 文档管理做些什么工作? 安装原版win10系统的方法有哪些 现在在网上可以找到正版w10系统吗