170 похожих чатов

Тяжело ли написать ФАТ-систему на Ноде? Или может про готовые

решения слышали? Есть "мультиОСные шифрованные диски" написанные на Си (кажется TrueCrypt) - пытаюсь продумать подобную на JS. Задача в одном файле хранить кучу файлов и общаться с ними через аналог fs-модуля Node. "склеить" все файлы в один - вроде не сложно. Но хочется удалять и править/перезаписывать файлы (меняя размеры), работать с папками и др.

18 ответов

31 просмотр

начни писать, по ходу узнаешь

Andriy-F Автор вопроса
A Z
начни писать, по ходу узнаешь

жутко полезный совет! ))) Пытался нагуглить хотя-бы основы ФАТ-архитектуры, и уже увяз в тонкостях. Хранение дерева, кластеры, цепочки кластеров в файле, дефрагментация, хранение размеров, количество ячеек в цепоче и тд... максимальная длина имени файлов, куча доп-реквизитов по каждому файлу (три даты, доступы)

Есть такая штука. Щас найду

Поищи ещё распределенные файловые системы на JS, там тоже куча наработок есть

Вот тебе гитхаб человека который подобные штуки очень любит https://github.com/mafintosh

Andriy-F Автор вопроса
Feanorx
Есть такая штука. Щас найду

ОГРОМНОЕ спасибо!!! Давно "вынашиваю" идею, и не знал даже с какой стороны подступиться...

Andriy F
ОГРОМНОЕ спасибо!!! Давно "вынашиваю" идею, и не з...

Пожалуйста. Она или аналог кстати в вебпаке внутри его используется.

Andriy-F Автор вопроса
Feanorx
Пожалуйста. Она или аналог кстати в вебпаке внутри...

Я хочу (для начала) научиться упаковывать тысячи файлов в один "бинарник", но так чтобы можно было "менять файлы поштучно" без перезаписи всего контейнера. По идее принципов ext4 должно хватить. Ни "fs в памяти", ни "зип-архивирование", ни другие виды "упаковки" не помогут. Нужно сразу со "структуры хранения дерева и цепочек" начинать!

Andriy F
Я хочу (для начала) научиться упаковывать тысячи ф...

https://github.com/narumatt/sqlitefs Только это FUSE и раст, но наверняка есть и в виде обычного модуля типа fs на JS

Andriy-F Автор вопроса
Feanorx
https://github.com/narumatt/sqlitefs Только это FU...

ушло в коллекцию. Я до такого не скоро доберусь, но как же это все "вкусно"... Представляю уже докер в котором подобное примонтировано и "выпущено наружу". И другие докеры/проги думают что работают с обычным (слегка тормознутым) диском, а на самом деле с МОЕЙ файловой системой работают...

https://github.com/mafintosh/level-filesystem Это конечно сохранит все не в файл, но в папку

Andriy-F Автор вопроса
Feanorx
https://github.com/mafintosh/level-filesystem Это ...

Не... я хочу именно в файл! вернее в сотню-тысячу "маленьких файликов", которые можно заливать в зашифрованном виде на "не безопасные" хостинги, флешки, сторэджи так чтобы из них можно было "собрать" всегда актуальную полную версию. Когда-то пользовался шифрованным диском на TrueCrypt. Создал диск-файл на несколько гигабайт. И не мог по почте "только изменения" отправить, хотя в нем лишь 10Кб поменялось. Та-же проблема была когда ежедневные архивы рабочей программы на гугл-сторэ архивировал вместе со СТАТИЧЕСКОЙ базой на сотню гигабайт "упаковывая одну папку в шифрованный 7зип-архив".

Andriy F
Не... я хочу именно в файл! вернее в сотню-тысячу ...

Так файл все равно нетривиально поменяется в ходе изменений. Потому что чтобы менять размер содержащихся там файлов нужно внутри держать таблицу со всем этим делом.

Andriy-F Автор вопроса

Не... хочу создать БИНАРНЫЙ "виртуальный диск" (программный), у которого будет (например) 100 "секторов". Каждый "сектор" будет не в одном файле, а в разных. Если меняю только один файл в ФС, то меняется максимум 3-4 "сектора" (зависит от дефрагментации файла). Тогда "на ту сторону" можно отправить лишь 3-4 файла чтобы и на той стороне была "актуальная версия данных".

Andriy F
Не... хочу создать БИНАРНЫЙ "виртуальный диск" (пр...

Так, а чем тебя не устраивает leveldb-filesystem? Там так и работает вроде

Andriy-F Автор вопроса
Feanorx
Так, а чем тебя не устраивает leveldb-filesystem? ...

насколько я понял, он не хранит фалы FS в ОДНОМ бинарнике, а создает РЕАЛЬНУЮ структуру папок.

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта