Pull to refresh

Облако Mail.ru в Total Commander

Reading time2 min
Views104K
Да, это именно то, что вы представили. Доступ к cloud.mail.ru как к диску прямо внутри файлового менеджера. Ссылка в конце статьи.

А ещё TC научился показывать иконки во вкладках!

Будем откровенны: безальтернативный механизм работы с облаком Mail.ru через синхронизацию очень неудобен. По сути, у пользователя нет полноценного контроля над единичными файлами; всё, что предлагает ему стандартный клиент — двустороннее зеркалирование указанных им данных. Если же нужно отойти от этого сценария, скажем, скачать из облачного архива единственный файл на несинхронизированном устройстве — приходится запускать браузер и пытаться сделать что-то через веб-интерфейс, в котором даже поиска нет. Учитывая, что содержимое облачных каталогов подгружается по мере прокрутки, поиск в браузере может и не помочь.
Есть и другие кейсы, при которых работа с облаком становится затруднительна. Доступ к облаку по webdav, который решил бы все проблемы, отключён (хотя работал какое-то время после запуска сервиса).
При этом сервис бесплатно предоставляет довольно значительный объём хранилища (раздачу террабайтов все помнят?), лимитирования скорости я ни разу не замечал, и за всё время работы с сервисом нареканий к нему не возникло. Для резервирования и пересылки не слишком приватных данных облако Mail.ru подходит очень хорошо. Ограниченность клиента — единственная проблема.

Раз она есть — надо её решать.
Сначала была идея отреверсить протокол работы стандартного клиента. Не знаю, сколько времени и сил у меня бы это заняло; к счастью на глаза попалась вот эта статья, содержащая разбор внутреннего API облака. Когда стало понятно, в какую сторону копать, нашлась частичная реализация API на PHP. Остальное оказалось делом времени: ориентируясь на эти данные я склепал плагин для Total Commander.
Принцип работы его простой: плагин прикидывается браузером, выполняющим AJAX-запросы к облаку, в общем-то техническая часть достаточно хорошо описана в вышеупомянутой статье. Забавно было, разве что, реализовывать этот принцип на Delphi (ну на чём умею): это было всё равно, что вернуться на 16 лет назад; несмотря на всю современную юникодность и мультиплатформенность, для разработчика со времён Delphi 7 мало что изменилось.

Сейчас плагин вполне обкатан, и имеет всю нужную функциональность, включая генерацию публичных ссылок «на лету» (Alt+Enter), разве что руки никак не дойдут до поддержки двухфакторной авторизации (принимаются pull-реквесты).
Код написан, как выше сказано, на Delphi, и под Total Commander, но исходники открыты под GNU GPL v3.0, и желающие могут создать расширение под предпочитаемый файловый менеджер сами.

Ссылочка на исходники и бинарники (x32/x64): GitHub.

Да, в пользовательском соглашении сервиса я не нашёл никаких ограничений на создание/использование сторонних клиентов. Технически плагин эквивалентен браузеру (хотя и не особенно маскируется), и поэтому ограничить его использование можно только административно. В любом случае мне интересно было бы услышать мнение представителей Mail.ru по этому поводу (UPD: оно вполне положительное).
Tags:
Hubs:
Total votes 72: ↑67 and ↓5+62
Comments159

Articles