Энтузиаст Лукас Великов опубликовал проект WhenFS, который реализует файловую систему на событиях Google Calendar. Файлы и папки разбиваются на кусочки данных, которые хранятся в описаниях событий. WhenFS не имеет практической ценности и был написан исключительно в образовательных целях.
Размер ящиков электронной почты не всегда был огромным. 1 апреля 2004 года Google запустила почтовый сервис Gmail, который поражал воображение объёмом бесплатного хранилища для каждого пользователя. Новостные издания того времени упоминали, что компания даёт в сотню с лишним раз больше места, чем на бесплатных тарифах конкурентов. При этом речь шла о всего 1000 мегабайтах на письма.
Через год этот объём удвоился до 2 ГБ. Размер ящиков не остановил рост: в октябре 2007 года он удвоился ещё раз до 4 ГБ, затем его увеличили до 7,5, а в 2012 — до 10 ГБ. Что наиболее важно, ещё 1 апреля 2005 года Google заявила, что место в ящике будет увеличиваться бесконечно.
На момент запуска Gmail облачных хранилищ не существовало. Стартап Dropbox будет сформирован лишь в 2007 году. На относительно большой объём хранилища немедленно обратили внимание энтузиасты, которые предложили хранить в них обычные файлы.
Так, Ричард Джонс уже в августе 2004 года опубликовал версию 0.1 утилиты GmailFS, которая общалась с серверами Google с помощью библиотеки libgmail. Его идею развил Бьярке Виксё [Bjarke Viksoe], который не позднее октября 2004 года представил программу GMail Drive. Проект — расширение оболочки Windows для создания виртуальной файловой системы, которая хранит файлы в аккаунте Gmail.
Viksoe.dk
Программа Виксё добавляла в «Мой компьютер» новый диск, в котором возможно делать роавно то же, что и в обычном накопителе: создавать папки, копировать и удалять файлы. Сами файлы при этом хранились в папке «Входящие». Когда пользователь создавал новый файл, в ящике Gmail заводилось новое письмо с пометкой GMAILFS, к которому файл прикладывался в виде вложения. С помощью встроенной в Gmail функции поиска программа GMail Drive периодически проверяла содержимое ящика, чтобы обновить структуру директорий. При желании пользователь программы мог подключать сразу несколько компьютеров к одному аккануту Gmail, чем обеспечивал синхронизацию облачной флэшки между несколькими машинами.
GMail Drive накладывала много ограничений (длина имени файла до 65 символов, не больше 25 МБ на файл) и снабжалась предупреждениями, что это экспериментальный инструмент. Со временем программа потеряла функциональность и перестала работать. После изменений страницы логина в Gmail 2015 года утилита GMail Drive больше не функционирует и не поддерживается.
Дух необычных проектов не угас. Разработчик Лукас Великов уже отметился несколькими необычными проектами, созданными в рамках хакатонов. На этот раз энтузиаст выложил выложил в личном аккаунте GitHub репозиторий WhenFS. Эта программа предлагает преобразовать Google Calendar в полноценную файловую систему.
Как и GMail Drive, WhenFS работает через интерфейсы FUSE, которая затем направляет нужные вызовы библиотекам для общения с веб-сервисом.
Схема работы WhenFS. Файл из описания проекта
В WhenFS хранение данных реализовано не самым простым образом. Каждый файл представляется в виде нескольких событий в календаре. К примеру, небольшая картинка разбивается на сотни описаний событий. Манипуляциями календаря сохраняются все данные файловой системы — файлы, директории, чтения, записи и всё остальное.
Небольшое изображение, которое было закодировано. Файл из описания проектаПредставление того же файла, но в виде событий в Google Calendar. Файл из описания проекта
Скорость работы WhenFS серьёзно ограничивает полезность программы. Как признаёт сам Лукас, файл на 3 КиБ получается сохранить за 7 секунд, то есть по 400 байтов в секунду.
Демонстрация скорости выгрузки. Файл из описания проекта
На этом запал не угас. В Google Calendar календари возможно расшарить по ссылке в режиме для чтения. Поэтому если в WhenFS указать идентификатор календаря и идентификатор события восстановления файловой системы, программа сумеет смонтировать чужую файловую систему.
Демонстрация работы с чужим календарём. Файл из описания проекта
Необходимость в изощрённых методах синхронизации файлов через Интернет ушла в далёкое прошлое. Сегодня большинство облачных хранилищ предлагает 5 или больше гигабайтов хранилища с синхронизацией и без странных ограничений или опасности потерять файлы.
Великов пишет, что WhenFS он создал исключительно ради изучения Rust, знакомства с файловыми системами FUSE и забавы, а не какой-то практической нужды. Баги автор исправлять отказывается. В описании проекта нет даже руководства, как пользоваться инструментом. Вместо этого Лукас призывает не злоупотреблять бесплатными сервисами.
Исходные коды программы WhenFS опубликованы под лицензией MIT.
github.com/lvkv/whenfs
Источник: habr.com