решения слышали? Есть "мультиОСные шифрованные диски" написанные на Си (кажется TrueCrypt) - пытаюсь продумать подобную на JS. Задача в одном файле хранить кучу файлов и общаться с ними через аналог fs-модуля Node. "склеить" все файлы в один - вроде не сложно. Но хочется удалять и править/перезаписывать файлы (меняя размеры), работать с папками и др.
начни писать, по ходу узнаешь
жутко полезный совет! ))) Пытался нагуглить хотя-бы основы ФАТ-архитектуры, и уже увяз в тонкостях. Хранение дерева, кластеры, цепочки кластеров в файле, дефрагментация, хранение размеров, количество ячеек в цепоче и тд... максимальная длина имени файлов, куча доп-реквизитов по каждому файлу (три даты, доступы)
Есть такая штука. Щас найду
Поищи ещё распределенные файловые системы на JS, там тоже куча наработок есть
https://github.com/ipfs/js-ipfs
Вот тебе гитхаб человека который подобные штуки очень любит https://github.com/mafintosh
ОГРОМНОЕ спасибо!!! Давно "вынашиваю" идею, и не знал даже с какой стороны подступиться...
Пожалуйста. Она или аналог кстати в вебпаке внутри его используется.
Я хочу (для начала) научиться упаковывать тысячи файлов в один "бинарник", но так чтобы можно было "менять файлы поштучно" без перезаписи всего контейнера. По идее принципов ext4 должно хватить. Ни "fs в памяти", ни "зип-архивирование", ни другие виды "упаковки" не помогут. Нужно сразу со "структуры хранения дерева и цепочек" начинать!
https://github.com/narumatt/sqlitefs Только это FUSE и раст, но наверняка есть и в виде обычного модуля типа fs на JS
ушло в коллекцию. Я до такого не скоро доберусь, но как же это все "вкусно"... Представляю уже докер в котором подобное примонтировано и "выпущено наружу". И другие докеры/проги думают что работают с обычным (слегка тормознутым) диском, а на самом деле с МОЕЙ файловой системой работают...
Вдогонку https://www.npmjs.com/package/fuse-bindings
https://github.com/mafintosh/level-filesystem Это конечно сохранит все не в файл, но в папку
Не... я хочу именно в файл! вернее в сотню-тысячу "маленьких файликов", которые можно заливать в зашифрованном виде на "не безопасные" хостинги, флешки, сторэджи так чтобы из них можно было "собрать" всегда актуальную полную версию. Когда-то пользовался шифрованным диском на TrueCrypt. Создал диск-файл на несколько гигабайт. И не мог по почте "только изменения" отправить, хотя в нем лишь 10Кб поменялось. Та-же проблема была когда ежедневные архивы рабочей программы на гугл-сторэ архивировал вместе со СТАТИЧЕСКОЙ базой на сотню гигабайт "упаковывая одну папку в шифрованный 7зип-архив".
Так файл все равно нетривиально поменяется в ходе изменений. Потому что чтобы менять размер содержащихся там файлов нужно внутри держать таблицу со всем этим делом.
Не... хочу создать БИНАРНЫЙ "виртуальный диск" (программный), у которого будет (например) 100 "секторов". Каждый "сектор" будет не в одном файле, а в разных. Если меняю только один файл в ФС, то меняется максимум 3-4 "сектора" (зависит от дефрагментации файла). Тогда "на ту сторону" можно отправить лишь 3-4 файла чтобы и на той стороне была "актуальная версия данных".
Так, а чем тебя не устраивает leveldb-filesystem? Там так и работает вроде
насколько я понял, он не хранит фалы FS в ОДНОМ бинарнике, а создает РЕАЛЬНУЮ структуру папок.
Обсуждают сегодня