一、
文件系统
先简单的介绍一下文件系统和分布式文件系统
1、文件系统:是操作系统用来存取文件的,计算机通过文件系统存放数据。大部分均基于磁盘存储,典型的文件系统包括unix 的UFS,NTFS是window NT的文件存储系统。传统文件系统主要面临的问题就是磁盘容量不够时,需要扩容才可继续进行文件存储,如同咱电脑内存不够加块内存条。
2、分布式文件存储系统:同传统的纵向扩容不同,分布式文件存储系统通过存储文件节点,各节点通信形成文件系统网络,各节点通过网络进行数据传输。就像原来密集的数据信息通过一张节点织网,分布式文件系统负责对节点进行存储,数据文件可存储于其他存储系统中。
二、GridFS 文件系统
GridFS是分布式文件存储系统的典型代表。为mongoDB提供的数据存储解决方案,专门供大数据文件存储使用,主要用于存储视频、音频、图片,GridFS主要适用于文件数量较大的文件存储。
GridFS并非mongoDB的特有,不过是mongo选择使用这样一种文件存储解决方案进行存储自己的数据。用户上传的数据存储于mongo的集合中,【mongoDB的集合类似于关系数据库的表】
三、在Java中使用mongo GridFS进行数据操作
介绍了GridFS的原理,下面以上传、下载本地PDF文件为例,演示如何在java maven项目中使用mongo进行数据操作。
1、整体流程