Как подключить SkyDrive давно волнует пользователей Linux. Клиента SkyDrive для Ubuntu в ближайшее время ждать не приходится, приходится изыскивать другие способы. И дело тут даже не в халявных гигабайтах, существует множество альтернатив чтобы из-за этого напрягаться. Одни используют облачные сервисы от Microsoft и хотели иметь доступ к своим документам. Меня же на исследование вопроса подтолкнуло приобретение устройства на WinPhone. Можно использовать веб-интерфейс, но это не всегда удобно, да и хотелось бы большего.
SkyDrive и WebDAV
Про то, что существует недокументированный доступ к SkyDrive по протоколу WebDAV не знает только ленивый. Сеть полна руководствами как подключить SkyDrive сетевым диском, возможно оно даже когда то работало. Я сам увлеченный идеей подключить все облачные сервисы сетевыми дисками использовал один из предложенных вариантов. Возможно этот вариант работал, но скорее всего я подошел к вопросу наплевательски, добился подключения и забил на это дело.
Чтобы закрыть вопрос полностью я еще раз попробовал подключится с использованием WebDAV под разными операционными системами. Иногда даже удавалось подключается, но ни получить список своих файлов, ни закачать файлы мне не удалось. Возможно когда подключение по WebDAV станет официальной фичей все заработает, пока же про этот вариант подключения можно забыть.
SkyDrive и WebDAV обходной путь
Вернее забыть о подключении напрямую. Но никто не запрещает использовать обходные варианты, например тот же Otixo (реф-ссылка). Как временный вариант Otixo работает, но однажды столкнувшись с глюками сервиса (не захотел подключатся) я решил поискать еще аналогичных сервисов. Нашлось несколько, мне в качестве альтернативы показался интересным SMEStorage. Тут можно не только подключится по WebDAV, но и воспользоваться специальным клиентом. Клиенты имеются для разных платформ, в том числе и под Linux. Скачать клиент можно тут.
SkyDrive и FUSE
Ну а теперь самый правильный способ подключения SkyDrive. Потребуется установить несколько Python скриптов (все необходимое доступно в каталоге пакетов для Python (PyPI)):
sudo apt-get install python-pip
sudo pip install 'python-skydrive[standalone]'
sudo pip install pyyaml
sudo pip install fusepy
Скрипт python-skydrive реализация SkyDrive API 5.0 на Python, после его установки мы сможем работать с содержимым аккаунта в командной строке. Потребуется только зарегистрировать приложение в DevCenter. Во время регистрации нужно будет выбрать внизу страницы мобильное клиентское приложение. По завершении нам будут показаны id и secret для созданного приложения. Создадим в домашнем каталоге файл ~/.lcrc и добавим их туда:
client:
id: xxxx
secret: xxxxxxxx
Остается авторизоваться на сервисе (используется OAuth), выполним:
skydrive-cli auth
Перейдем по сгенерированной ссылке и разрешаем приложению доступ, произойдет перенаправление на другую страницу, копируем ее адрес и вставляем в командную строку для завершения авторизации. Подключенные приложения можно увидеть по этой ссылке: https://account.live.com/consent/Manage.
Поздравляю большая часть работы позади, можно опробовать командную строку:
skydrive-cli --help
Модуль fusepy позволяет скриптам на Python работать с FUSE. Кроме того потребуется скачать и установить в каталог /usr/local/sbin/
скрипт skydrivefs. Не забываем сделать скрипт исполняемым. Проверяем:
sudo mkdir /media/skydrive && sudo skydrivefs /media/skydrive
В подключенных дисках должен появится новый диск skydrive. Остается отредактировать файл fstab:
sudo nano /etc/fstab
, добавим:
skydrivefs /media/skydrive fuse.skydrivefs user,rw,noauto 0 0
Каталог /media используется для подключения сменных дисков, так что точку монтирования нужно создавать именно в нем. Опция user разрешает любому пользователю монтировать файловую систему. Для чтения и записи — rw. Опция noauto монтирование вручную, иначе Ubuntu будет пытается подключить файловую систему при загрузке до загрузки собственно сети, что ни к чему хорошему не приведет..
P.S.
Теперь у вас есть на выбор несколько способов подключения своего SkyDrive аккаунта в Linux. На этом вопрос с подключением в Ubuntu думаю можно считать закрытым.
P.P.S.
Ну и еще один способ настроить автоподключение SkyDrive с использованием клиента SMEStorage (без пояснений):
mkdir ~/skydrive
sudo echo -c "smestorage /home/user/skydrive user:pass --server=smestorage.com --ao" root > /etc/rc.local
sudo ln -s ~/skydrive/My\ SkyDrive\ files ~/.skydrive