Я ищу решение, которое позволяет мне хранить некоторую вложенную файловую структуру (каталоги, файлы) в одном файле. Я думал о простых архивах, таких как tarballs, но из-за многих операций это не подходит.
Затем я подумал о JSON и сохранил в нем двоичные файлы, как строки с кодировкой base64. Затем я наткнулся на BSON и его ограничение до 16 МБ на файл. Затем снова найден GridFS в качестве обертки, которая разбивает большие файлы на более мелкие куски.
Это идеально подходит для моих целей, потому что 16 Мбайт кусков идеально подойдет.
Из-за децентрализованного выравнивания моего проекта я не могу использовать центральную базу данных, такую как Mongo. Можно ли использовать GridFS для одного локального файла, такого как storage.bson
или что-то еще, где я могу хранить, ну, мои файлы?
GridFs использует систему хранения документов MongoDb для хранения небольших фрагментов (256 тыс.) Файлов. Это не аспект MongoDb, который можно отделить, чтобы использоваться независимо.
MongoDb также по умолчанию создает файлы хранения данных размером 2 ГБ. Таким образом, даже при использовании MongoDb файлы не будут храниться в одном файле. Они будут разделены на несколько файлов данных. Подобные файлы нередки в базах данных.
Кроме того, BSON не ограничивается 16 МБ в качестве формата хранения. Ограничение на 16 МБ накладывается движком MongoDb. Документы BSON могут хранить около 2 ГБ данных в каждой спецификации.