MongoDB的GridFS详细分析
时间:2021-07-01 10:21:17
帮助过:8人阅读
GridFS简介GridFS是MongoDB中的一个内置功能,可以用于存放大量小文件。http://www.mongodb.org/display/DOCS/GridFShttp://www.mongodb.org/display/DOCS/GridFS+Specification
GridFS使用MongoDB提供了一个命令行工具mongofiles可以来处理GridFS,在bin目录下。列出所有文件:mongofiles list上传一个文件:mongofiles put xxx.txt下载一个文件:mongofiles get xxx.txt查找文件:mongofiles search xxx //会查找所有文件名中包含“xxx”的文件mongofiles list xxx //会查找所有文件名以“xxx”为前缀的文件参数说明:–d 指定数据库 ,默认是fs,Mongofiles list –d testGridfs-u –p 指定用户名,密码-h 指定主机-port 指定主机端口-c 指定集合名,默认是fs-t 指定文件的MIME类型,默认会忽略使用MongoVUE来查看,管理GridFSMongoVUE地址:http://www.mongovue.com/MongoVUE是个免费软件,但超过15天后功能受限。可以通过删除以下注册表项来解除限制:[HKEY_CURRENT_USER\Software\Classes\CLSID\{B1159E65-821C3-21C5-CE21-34A484D54444}\4FF78130]把这个项下的值全删掉就可以了。
nginx-gridfs模块的安装使用项目主页:https://github.com/mdirolf/nginx-gridfs通过nginx-gridfs,可以直接用http来访问GridFS中的文件。1. 安装安装各种依赖包:zlib,pcre,openssl在ubuntu下可能是以下命令:sudo apt-get install zlib1g-dev //貌似sudo apt-get install zlib-dev 不能安装sudo apt-get install libpcre3 libpcre3-devsudo apt-get install openssl libssl-dev安装git(略)用git下载nginx-gridfs的代码:git clone git://github.com/mdirolf/nginx-gridfs.git cd nginx-gridfs git submodule init git submodule update
下载nginx:wget http://nginx.org/download/nginx-1.0.12.ziptar zxvf nginx-1.0.12.zipcd nginx-1.0.12 ./configure --add-module=的路径>makesudo make install如果编译出错,则在configure时加上--with-cc-opt=-Wno-error 参数。
2. 配置nginx在server的配置中加上以下 location /pics/ { gridfs pics field=filename type=string; mongo 127.0.0.1:27017; }上面的配置表示:数据库是pics,通过文件名filename来访问文件,filename的类型是string目前只支持通过id和filename来访问文件。启动nginx:/usr/local/nginx/sbin/nginx用MongoVUE把一个图片001.jpg上传到pics数据库中。打开:http://localhost/pics/001.jpg如果成功,则可以看到显示图片了。
注意事项1. GridFS不自动处理md5相同的文件,对于md5相同的文件,如果想在GridFS中只有一个存储,要用户自已处理。Md5值的计算由客户端完成。2. 因为GridFS在上传文件过程中是先把文件数据保存到fs.chunks,最后再把文件信息保存到fs.files中,所以如果在上传文件过程中失败,有可能在fs.chunks中出现垃圾数据。这些垃圾数据可以定期清理掉。
以上就介绍了MongoDB 的 GridFS 详细分析,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。