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