在本地磁盘上使用具有C++的 GridFS

Use GridFS on the local disk with C++

本文关键字:C++ GridFS 磁盘      更新时间:2023-10-16

我正在寻找一种解决方案,让我将一些嵌套的文件结构(目录,文件)存储在一个文件中。我想过像压缩包这样的简单档案,但由于许多操作,它不合适。

比我想到了 JSON 并将二进制文件存储到其中,作为 base64 编码的字符串。然后我偶然发现了BSON及其每个文件16MB的限制。然后再次发现 GridFS 是一个将较大文件拆分为较小块的包装器。

这非常适合我的目标,因为 16MB 的块非常适合。

由于我的项目的分散对齐,我不能使用像 Mongo 这样的中央数据库。是否可以将 GridFS 用于单个本地文件,例如 storage.bson 或其他文件,我可以在其中存储我的文件?

GridFs 使用 MongoDb 文档的存储系统来存储小块 (256K) 的文件。这不是MongoDb的一个可以拆分为独立使用的方面。

默认情况下,MongoDb 还会创建 2GB 的数据存储文件。因此,即使使用MongoDb,文件也不会存储在单个文件中。它们将被拆分为多个数据文件。像这样的文件拆分在数据库中并不少见。

此外,BSON 不限于 16MB 作为存储格式。16MB的限制是由MongoDb引擎施加的。BSON文档几乎可以为每个规范存储2GB的数据。