python gridfs_MongoDB GridFS
MongoDB GridFS
GridFS 用于存储和恢复那些超过16M(BSON文件限制)的文件(如:图片、音频、视频等)。
GridFS 也是文件存储的一种方式,但是它是存储在MonoDB的集合中。
GridFS 可以更好的存储大于16M的文件。
GridFS 会将大文件对象分割成多个小的chunk(文件片段),一般为256k/个,每个chunk将作为MongoDB的一个文档(document)被存储在chunks集合中。
GridFS 用两个集合来存储一个文件:fs.files与fs.chunks。
每个文件的实际内容被存在chunks(二进制数据)中,和文件有关的meta数据(filename,content_type,还有用户自定义的属性)将会被存在files集合中。
以下是简单的 fs.files 集合文档:
{
"filename": "test.txt",
"chunkSize": NumberInt(261120),
"uploadDate": ISODate("2014-04-13T11:32:33.557Z"),
"md5": "7b762939321e146569b07f72c62cca4f",
"length": NumberInt(646)
}
以下是简单的 fs.chunks 集合文档:
{
"files_id": ObjectId("534a75d19f54bfec8a2fe44b"),
"n": NumberInt(0),
"data": "Mongo Binary Data"
}
GridFS 添加文件
现在我们使用 GridFS 的 put 命令来存储 mp3 文件。
调用 MongoDB 安装目录下bin的 mongofiles.exe工具。
打开命令提示符,进入到MongoDB的安装目录的bin目录中,找到mongofiles.exe,并输入下面的代码:
>mongofiles.exe -d gridfs put song.mp3
-d gridfs 指定存储文件的数据库名称,如果不存在该数据库,MongoDB会自动创建。如果不存在该数据库,MongoDB会自动创建。Song.mp3 是音频文件名。
使用以下命令来查看数据库中文件的文档:
>db.fs.files.find()
以上命令执行后返回以下文档数据:
{
_id: ObjectId('534a811bf8b4aa4d33fdf94d'),
filename: "song.mp3",
chunkSize: 261120,
uploadDate: new Date(1397391643474), md5: "e4f53379c909f7bed2e9d631e15c1c41",
length: 10401959
}
我们可以看到 fs.chunks 集合中所有的区块,以下我们得到了文件的 _id 值,我们可以根据这个 _id 获取区块(chunk)的数据:
>db.fs.chunks.find({files_id:ObjectId('534a811bf8b4aa4d33fdf94d')})
以上实例中,查询返回了 40 个文档的数据,意味着mp3文件被存储在40个区块中。
python gridfs_MongoDB GridFS相关推荐
- python gridfs_【已解决】用Python去连接本地mongoDB去用GridFS保存文件
折腾: 期间,命令行方式的mongofiles去put get delete delete_id等,已经基本上搞清楚了. 接着就是去用Python代码,通过driver: 的方式,调用API,去保存数 ...
- mongodb存储二进制数据的二种方式——binary bson或gridfs
python 版本为2.7 mongodb版本2.6.5 使用mongodb存储文件,可以使用两种方式,一种是像存储普通数据那样,将文件转化为二进制数据存入mongodb,另一种使用gridfs,咱们 ...
- Python 分布式文件系统 Mongodb GridFS
Python 分布式文件系统 Mongodb GridFS~~~~ 抽时间关注下~~~ 转载于:https://www.cnblogs.com/macula7/archive/2010/03/31/1 ...
- Python+Streamlit aggrid+MongoDB GridFS构建低代码文档管理应用(文档查询下载实用篇)
1. Sreamlit aggrid简介 Sreamlit aggrid是Streamlit的Ag-Grid组件的实现,在Python Streamlit框架下,更加灵活的使用表格,包括分组.排序.编 ...
- python gridfs_python – pymongo从GridFS中获取图像
我正在玩MongoDB和pymongo API.我可以将一个图像文件放到GridFS中 – 看起来很简单: >>> f = open('myimage.jpg', 'r') > ...
- python gridfs_python 将图片存入mongodb,读取图片,gridfs模块
导入图片 引入模块,其中gridfs模块不需要单独安装,引入了pymongo即可直接引入 from pymongo import MongoClient from gridfs import * im ...
- python gridfs_python利用mongodb上传图片数据 : GridFS 与 bson两种方式
利用mongodb保存图片通常有两种方法,一种是将图片数据转化为二进制作为字典的键值对进行保存,另一种是利用mongodb提供的GridFS进行保存,两者各有利弊.性能方面的优劣未曾测试,无法进行评价 ...
- java mongodb gridfs_MongoDB学习笔记之GridFS使用介绍
GridFS简介 GridFS是MongoDB中的一个内置功能,可以用于存放大量小文件. GridFS使用 MongoDB提供了一个命令行工具mongofiles可以来处理GridFS, 列出所有文件 ...
- python与mongo_MongoDB与Python的交互
驱动模块 pymongo是python里常用的操作MongoDB的驱动模块 可用pip下载安装 pip install pymongo 创建连接 MongoClient是MongoDB的客户端代理对象 ...
最新文章
- 计算机专业可以用台式机吗,Win10X电脑操作系统可以装在台式机吗?
- 这是你从未见过的组件库 -- Android 上的手绘风格组件
- 美团Android自动化之旅—生成渠道包
- 马超计算机博士,湖南大学设计院马超民等博士生团队发明“手势”控制汽车
- Javascript数组操作
- c语言switch编写个人所得税,C语言编写一个计算个人所得税的程序,要求输入收入金额,能够输...
- 190328每日一句 When you forgive, you release.
- iso中应用外部资源
- 如何制作Linux程序启动脚本
- php168找回管理员密码,如何找回WordPress后台管理员密码
- 实验七-卷积编码的MATLAB实现
- 搜集一些常见国家语言Unicode编码范围
- Vue事件修饰符.prevent .passive
- 芯片设计流程介绍(从硬件设计语言到芯片制造)
- USACO/ratios 3.2.4
- Process finished with exit code 134
- 双击.bat文件闪退
- BeautifulSoup中find和find_all的使用
- 共享软件走向海外之路
- 密码学归约证明——定长对称加密密钥的敌手不可区分性
热门文章
- android 仿qq换肤功能,Android插件化的思考——仿QQ一键换肤,思考比实现更重要!.doc...
- ET框架---PlayerComponent学习笔记
- const char *str,char const *str,char *const str的区别,及const详解
- 秦小明 金融班 课程笔记 第一部分2018.6.8 宏观和微观经济
- SwiftUI之猜国旗APP及色彩类控件
- Nginx_静态资源处理
- python词云图词频统计
- bcompare--使用/实例
- 阿里102班成立,班主任马云寄语:理想主义让我们走在一起
- 双重绝缘和加强绝缘的安全条件