文件系统:计算机通过其存放数据


分布式文件存储系统:通过文件节点形成的文件系统网络进行数据传输


我们这次上传用到的是GridFS(要适用于文件数量较大的文件存储)


GridFS为什么可以存大文件?驱动首先会在当前数据库创建两个集合:"fs.files"和"fs.chunks"集合


前者记录了文件名,文件创建时间,文件类型等基本信息;后者分块存储了文件的二进制数据(并支持加密这些二进制数据)。分块的意思是把文件按照指定大小分割,然后存入多个文档中。


在"fs.chunks"中有个"files_id"键,它对应"fs.files"的"_id";"fs.chunks"还有一个键(int型)"n",它表明这些块的先后顺序。这两个集合名中的"fs"也是可以通过参数自定义的。


 很详细的讲解及代码示例


Mongo mongo = new Mongo();    
            DB db = mongo.getDB("mongoDBFile");   //创建数据库连接    
            GridFS myFS = new GridFS(db,"user1"); //创建GridFS   对mongoDBFile数据库中的user1进行操作,这样文件的读取和删除都是user1中的文件    
                
            //保存文件    
            GridFSFile file = myFS.createFile(new File("D:/image1.jpg"));    
            file.save();


网上这样的代码很多,但是我们尝试的时候createFille总是报红线,你说着急不?后来我撤了(因为有其他的事情嘛)再后来问了下何大神,大神说gridFSB没有引用成功,更换了一下GridFS引用的包