Mongodb GridFS图片文件存储解决方案ITeye - 众发娱乐

Mongodb GridFS图片文件存储解决方案ITeye

2019-01-11 11:35:13 | 作者: 振海 | 标签: 图片,存储,文件 | 浏览: 2909

    Mongodb GridFS图片文件存储处理方案

    之前处理方案是接纳图片数据后,将图片直接存储到盘阵,然后经过Apache做效劳器,将图片信息存储到数据库,而且存储一个Apache的拜访途径。

    现在需求后台效劳存储图片,将图片存储到MongoDB集群中,然后经过Nginx中的nginx-gridfs模块进行拜访,在浏览器中经过url拜访,作用与Apache拜访本地文件相同。

     本方案的内容比较根底,今后会有深化了解和优化,敬请期待!

一、装置MongoDB

    (1)装置MongoDB

      进入方案装置目录:cd  /usr/local/ 

     下载https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.6.1.tgz

      解压:tar -zxf mongodb-linux-x86_64-2.6.1.tgz

      改名:mv mongodb-linux-x86_64-2.6.1 mongodb2.6.1

      创立数据目录和日志目录: mkdir -p mongodb2.6.1/mongodb_data/mongodb_db

                                                 mkdir -p mongodb2.6.1/mongodb_data/mongodb_logs

     发动MongoDB: 进入MongoDB bin目录履行以下指令:

      cd /usr/local/mongodb2.6.1/bin

      ./mongod --dbpath=/usr/local/mongodb2.6.1/mongodb_data/mongodb_db/ --logpath=/usr/local/mongodb2.6.1/mongodb_data/mongodb_log/mongodb.log --logappend

      查看发动状况:

      ps -ef | grep mongo 看到方才发动指令就阐明在运行了

      经过 netstat -ant | grep 27017 还能查看端口静态状况

[root@zjhl1 opt]# ps -ef | grep mongo
root 16350 10593 1 15:40 pts/1 00:01:11 ./mongod --dbpath=/opt/mongodb2.6.1/mongodb_data/mongodb_db/ --logpath=/opt/mongodb2.6.1/mongodb_data/mongodb_logs/mongodb.log --logappend
root 19027 10593 0 17:21 pts/1 00:00:00 grep mongo
[root@zjhl1 opt]# 
[root@zjhl1 opt]# netstat -ant | grep 27017
tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 
tcp 0 0 127.0.0.1:27017 127.0.0.1:47686 ESTABLISHED 
tcp 0 0 127.0.0.1:47686 127.0.0.1:27017 ESTABLISHED 
tcp 0 0 192.168.1.111:27017 192.168.1.100:53462 ESTABLISHED 
[root@zjhl1 opt]# 

 

    (2)装置MongoVUE客户端

      MongoVUE是相似oracle中PL/SQL Developer 或许MySql中SQLyog的图形化客户端。

      现在是收费的,下载后Installer.msi后直接装置就行。至于授权问题自己百度处理。

      此东西的功用许多,这儿不展开讲,有需求的自己百度。

    

      

 

二、装置Nginx

    (1)下载nginx-gridfs插件

      网上有传出运用git装置此插件的,这个比较费事,我在文章的附件中留了下载包。自己测试可用。

      下载后还要下载mongo的c言语驱动包,这个也能够在附件中下载。

      下载完成后进行解压:tar -zxf nginx-gridfs.tar.gz

                                         tar -zxf mongo-c-driver-0.94.2.tar.gz

       解压完成后将驱动包内容悉数拷贝到nginx-gridfs目录下的mongo-c-driver目录中:

       mv mongo-c-driver-0.94.2/*  nginx-gridfs/mongo-c-driver/   

       如果有提示现已存在src目录,没有关系,疏忽。然后便是下载Nginx,编译装置的进程了。

    (6)下载Nginx1.0.1

     Nginx版别太高对支撑nginx-gridfs模块不是很成功,我是运用的Nginx1.7弄了一天都出不来图片。换成1.0.1就好了。对c不是很熟悉就没有深究。有那位大拿知道能够告诉我。

      wget 

      解压:unzip nginx-1.0.1.zip 

      装备编译时设置:./configure --prefix=/usr/local/nginx --with-openssl=/usr/include/openssl --with-http_stub_status_module --add-module=/opt/nginx-gridfs

      编译: make

      装置:make install

      装备mogon-gridfs地址:

      在vim /usr/local/nginx/conf/nginx.conf装备文件中,添加下面的内容:

        location /pics/ {
                gridfs pics    
                field=filename
                type=string;
                mongo 127.0.0.1:27017;
        }

      

     gridfs:nginx辨认插件的姓名

     pics:数据库称号

     [root_collection]: 挑选collection,如root_collection=blog, mongod就会去找blog.files与blog.chunks两个块,默许是fs

     [field]:查询字段,确保mongdb里有这个字段名,支撑_id, filename, 可省掉, 默许是_id

     [type]:解说field的数据类型,支撑objectid, int, string, 可省掉, 默许是int

     [user]:用户名, 可省掉

     [pass]:暗码, 可省掉    

     mongo:mongodb url mongo称号 地址:端口

 

 #access_log logs/host.access.log main;
 location / {
 root html;
 index index.html index.htm;
 location /pics/ {
 gridfs pics
 field=filename
 type=string;
 mongo 127.0.0.1:27017;
 #error_page 404 /404.html;
 # redirect server error pages to the static page /50x.html

 

      发动:/usr/local/nginx/sbin/nginx

      查看日志:tail -f /usr/local/nginx/logs/error.log

      查看: 在浏览器输入: /uploads/allimg/190111/20190111113523kjajcppp2fy26866.jpg", db); // 存储图片 } catch (Exception e) { e.printStackTrace(); }

 

    (2)文件获取

        经过代码获取图片就不写了。只写如安在程序中传递文件途径,然后在前端展现。

       存储图片信息时,能够加上ip地址:/uploads/allimg/190111/20190111113533i2druwsz3u326867.jpg ,然后前端使用经过给定的URL地址就能够获取图片内容了。

       在浏览器中输入地址能够获得相同的作用。

 

 

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表众发娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章

阅读排行

  • 1

    db2move 指令无法导出表ITeye

    导出,数据,字符
  • 2
  • 3

    Memcached的定位ITeye

    定位,数据,一个
  • 4

    PGA内存办理战略ITeye

    内存,办理,时刻
  • 5

    MySQL命令行ITeye

    输入,数据库,指令
  • 6

    Oracle 表空间与数据文件ITeye

    空间,数据文件,文件
  • 7

    【转】ORACLE近义词总结ITeye

    近义词,方针,数据库
  • 8
  • 9

    Mysql表结构、数据仿制ITeye

    仿制,结构,数据
  • 10