我正在寻找一种解决方案,让我将一些嵌套的文件结构(目录,文件)存储在一个文件中。我想过像压缩包这样的简单档案,但由于许多操作,它不合适。
比我想到了 JSON 并将二进制文件存储到其中,作为 base64 编码的字符串。然后我偶然发现了BSON及其每个文件16MB的限制。然后再次发现 GridFS 是一个将较大文件拆分为较小块的包装器。
这非常适合我的目标,因为 16MB 的块非常适合。
由于我的项目的分散对齐,我不能使用像 Mongo 这样的中央数据库。是否可以将 GridFS 用于单个本地文件,例如 storage.bson
或其他文件,我可以在其中存储我的文件?
GridFs 使用 MongoDb 文档的存储系统来存储小块 (256K) 的文件。这不是MongoDb的一个可以拆分为独立使用的方面。
默认情况下,MongoDb 还会创建 2GB 的数据存储文件。因此,即使使用MongoDb,文件也不会存储在单个文件中。它们将被拆分为多个数据文件。像这样的文件拆分在数据库中并不少见。
此外,BSON 不限于 16MB 作为存储格式。16MB的限制是由MongoDb引擎施加的。BSON文档几乎可以为每个规范存储2GB的数据。