Как подключить Google Drive и Яндекс.Диск в Linux и FreeBSD

Доброго времени суток. Как вы наверно знаете недавно компании Google и Яндекс запустили сервисы хранения файлов файлов в облаке. Я был и остаюсь фанатом DroBox’а, но халява же … Одна беда – про пользователей альтернативных операционных систем как обычно забыли. Тогда как для пользователей Windows имеется все готовое, нам суровым линуксойдам :-) приходится думать над подключением самим.

Начав с подключения Яндекс.Диска, в котором меня привлекло использование WebDAV (Web-based Distributed Authoring and Versioning – расширение протокола HTTP позволяющее работать с файлами на удаленном хостинге), так же я подключил Google Drive и некоторые другие облачные флешки, подключать которые раньше в Linux и не думал.

Подключаем WebDAV ресурс в Ubuntu

В принципе что в Linux, что в Windows никаких особых программ не нужно, все работает из коробки. В Ubuntu работа реализована с помощью пакета GVFS, доступно в Nautilus (Файл -> Подключиться к серверу). Способ простой, но не лучший из возможных, например работает только в графическом режиме, только в оболочке Gnome или Unity … Куда более интересный вариант использовать лишенный этих недостатков модуль FUSE davfs2. Установим davfs2 и попробуем подключить Яндекс.Диск, делается это примерно так:

  • Устанавливаем пакет davfs2 (считаем что FUSE уже установлен и настроен): sudo apt-get install davfs2
  • Чтобы разрешить использовать davfs обычным пользователям выполним: sudo chmod 4755 /usr/sbin/mount.davfs
  • Создаем точку монтирования: sudo mkdir /media/yandex.disk
  • Монтируем Яндекс.Диск, потребуется ввести логин и пароль:
    sudo mount -t davfs https://webdav.yandex.ru /media/yandex.disk/
  • Проверяем: sudo df -h /media/yandex.disk/

Добавим настройки монтирования в fstab (пусть система сама все делает за нас):

  • Отредактируем fstab: sudo gedit /etc/fstab, добавим: https://webdav.yandex.ru:443 /media/yandex.disk davfs user,rw,noauto 0 0
  • Отредактируем /etc/davfs2/secrets(чтобы не вводить пароль при каждом монтировании): sudo gedit /etc/davfs2/secrets, добавим: https://webdav.yandex.ru login pass

Разрешить доступ можно и переконфигурировав пакет davfs: sudo dpkg-reconfigure davfs2
Каталог /media используется для подключения сменных дисков, так что точку монтирования нужно создавать именно в нем. Опция user разрешает любому пользователю монтировать файловую систему. Для чтения и записи – rw. Опция noauto монтирование вручную, иначе Ubuntu будет пытается подключить файловую систему при загрузке до загрузки собственно сети, что ни к чему хорошему не приведет..

Продолжаем для всех используемых облаков. Я уже говорил что мы не ограничимся Яндекс.Диском? Не забываем только создавать отдельные каталоги в точке монтирования для каждого диска. Теперь наш диск будет виден в Nautilus (Unity) как отдельный накопитель.

WebDAV в FreeBSD

В большинстве случаев Linux в этом блоге это Ubuntu. Это моя основная рабочая система уже скоро как шесть лет и пиарю я ее абсолютно сознательно. Но я умею не только Ubuntu, и после анализа поискового трафика я решил добавить этот раздел(пусть никто не уйдет обиженным). Способ полностью рабочий (FreeBSD9), проверял специально на нескольких машинах. От Linux варианта отличается тем что вместо отсутствующего в портах davfs, используется wdfs:

  • Устанавливаем пакет fusefs-wdfs: pkg_add -r fusefs-wdfs,
  • или собираем из портов:
    cd /usr/ports/sysutils/fusefs-wdfs/
    make install clean
  • Разрешаем запуск FUSE:
    echo 'fusefs_enable="YES"' >> /etc/rc.conf
  • Запускаем FUSE: /usr/local/etc/rc.d/fusefs start
  • Создаем точку монтирования: mkdir /mnt/yandex.disk
  • Монтируем Яндекс.Диск:
    wdfs https://webdav.yandex.ru /mnt/yandex.disk -o ,username=user@yandex.ru,password=password
  • Соглашаемся с сертификатом, вводим логин и пароль
  • Проверяем: sudo df -h /mnt/yandex.disk/

Добавляем другие облака

Потренировались на Яндекс.Диске? Хотите знать что можно подключить еще? Для начала можно попробовать эти: SkyDrive от MS и ownCloud.

Чтобы подключить SkyDrive зайдите по своему Windows Live ID и скопируйте из URL код идущий после cid=: https://skydrive.live.com/#cid=*****. Теперь можно подключится используя в качестве адреса ресурса https //docs.live.net/ваш_cid_тут/. Или воспользоваться вариантом изложенным ниже.

Забудьте не работает, работающий способ здесь: Подключение SkyDrive в Ubuntu.

Теперь OwnCloud. Это проект сообщества KDE, предназначение которого создание свободной альтернативы некоторым облачным сервисам. Можно поднять самому а можно воспользоваться готовым например OwnCube(платный) или PortKnox(можно попользоваться бесплатно). Адрес будет выглядеть примерно так(зависит от сервиса): http://сервер/путь/к/папке/owncloud/webdav.php.

Сервис не поддерживает WebDAV

С помощью WebDAV можно подключить Google Drive, DropBox и другие облачные сервисы, не имеющие поддержки WebDAV или только обещающие такую (Ubuntu One, DropBox). Например, чтобы получить доступ к вашему DropBox’у из FreeBSD или Haiku не дожидаясь появления родного клента.

Для Google Drive можно воспользоваться сервисом Otixo (реф-ссылка). Если коротко этот сервис добавляет поддержку WebDAV в Google Drive. И не только, еще Dropbox, SugarSync, SkyDrive, Ubuntu One и другие. Подключаемся по адресу https://dav.otixo.com/ авторизуем приложение и работаем. Бесплатная версия имеет ограничения, но для запасного варианта должно хватить.

Для DropBox неплохим выбором был – DropDAV. Регистрируемся, авторизируем приложение на Dropbox, пользуемся. Для подключения используем адрес https://dav.dropdav.com/. Почему неплохим? Раньше сервисом можно было пользоваться бесплатно теперь только за деньги.

(К слову, про Haiku и другие, для подключения используем CLI клиент Cadaver.)

Добавим немного шифрования

Для шифрования воспользуемся EncFS. Нравится мне эта файловая система за простоту в использовании и всеядность по отношению к операционным системам. Тема шифрования с EncFS раскрыта в этой заметке, добавлю разве скрипт автомонтирования (найден на хабре и слегка подправлен):


# Проверяем примонтирован ли yandex disk к директории если да, то отключаем
if grep -q "yandex.disk" /proc/mounts; then
# Выводим сообщение в области уведомлений.
notify-send -u normal "Yandex Disk" "На данный момент примонтирован \n ОТМОНТИТРОВАНИЕ !"
# Отключаем шифрованный раздел
# пользователь должен быть в группе fuse
fusermount -u /home/user/yandex.disk.encrypted
# Отмонтируем Диск с правами пользователя
# в /etc/fstab , в параметрах монтирования должен быть параметр user (все параметры: rw,uid=1000,gid=1000,user,noauto)
umount /home/user/yandex.disk
# если не примонтирован
else
# Выводим сообщение в области уведомлений.
notify-send -u normal "Yandex Disk" "Не примонтирован"
# Спрашиваем пароль шифрования во всплывающем окне
pass=$(zenity --password --title "Пароль от EncFS" )
# Монтируем яндекс диск с учётными данными из /etc/davfs2/secrets
mount /home/user/yandex.disk
# Подключаем шифрованную папку
echo $pass | encfs -S -o uid=1000,gid=1000 /home/user/yandex.disk/encrypted/ /home/user/yandex.disk.encrypted/
# Ждём (lol)
ping ya.ru -c 1
# Выводим сообщение в области уведомлений
notify-send -u normal "Yandex Disk" "Успешно примонтирован"
fi

Совсем хитрое шаманство

Хитрое шаманство один – обьем неограничен. Суть идеи – есть такой модуль FUSE mhddfs, делает он следующее обьединяет несколько файловых систем в одну. Например несколько davfs2 файловых систем … Можно получить сколь угодно большого обьема(зависит от вашего желания заводить новые аккаунты) сетевой диск. Работает это примерно так:

  • Устанавливаем mhddfs: sudo apt-get install mhddfs
  • Монтируем WebDAV каталоги:
    sudo mount -t davfs -o rw url /clouds/webdav1/
    sudo mount -t davfs -o rw url /clouds/webdav2/
  • Обьединяем каталоги: mhddfs /clouds/webdav1,/clouds/webdav2 /media/webdav

Примерно так, хотя есть более адекватные методы увеличить доступный обьем облачного хранилища.

Хитрое шаманство два – настраиваем RAID 1(зеркало). В принципе подойдет любое ПО для синхронизации, но шаманить так шаманить. Еще один модуль FUSE – Chiron FS, создает RAID 1. Подробностей не будет. Возможно под настроение опробую и опишу результат.

Хитрое шаманство за номером три – обьединить первых два. Вы только представьте это себе !!! :-).

Ссылки:

Скрипт автоматического обьединения ресурсов WebDAV (обсуждение на хабре)

Голосуем за добавление поддержки WebDAV в DropBox.

  • Frodox

    Поправьте адрес:
    https //docs.live.net/ваш_cid_тут/
    на
    https://docs.live.net/ваш_cid_тут/  , а то ведь люди копируют, не глядя ;-)
    И что-то не получилось SkyDrive по WebDAV =

    • Ivush

      Спасибо, поправил. Про работу SkyDrive сам не понял – работало через раз. Или из-за того что опция не документирована (в инетах подключение описывают по разному), или из-за того что тестил под фряхой (отзывы на fusefs-wdfs тоже не радуют). 

  • Phanthom

    Неограниченное пространство… щастье то какое…
    Чушь. Для рядового пользователя – бесполезняк. В основном продвинутые пользователи хранят на дисках торрентопомойку. Фотки и прочее – мизерный процент. Для них хватит и пары дисков в зеркале. Пусть даже облачных.
    А для того чтобы хранить торренты на этих дисках – нужен широкий канал в инет, чего у большинства нету.
    Вторая проблема – доступ к этим ресурсам с левого компа. Облачные диски тем и хороши, что на них можно зайти с любого компа подключённого к инету. Причём с любой из осей. А при реализации “бесконечного шифрованного зеркально-облачного” диска – зайти вы сможете только с этой системы, либо с той, доступ которой вы разрешите посредством шлюза (нфс, самба, фтп, хттп). А так чтобы пришёл в интернет кафе или в гости и открыл диск – не получится. И вы забыли упомянуть главную особенность mhddfs – если использовать “бесконечный” диск для единственного, что мне приходит на ум – для бэкапов – то размер файла бэкапа будет ограничен размером максимального свободного места на одном таком облаке. Т.е. если у вас 2 облака по 10 гигов, но на одном уже лежит что то на 5 гигов предположим – то вы имеете хранилище суммарной ёмкостью свободного места в 15 гигов, но залить больше 10 вы не сможете – система скажет что не хватит места.

    • http://anykeychhik.ru/ Ivush

      Для меня облака в основном синхронизация и резервное копирование. Соглашусь, добиваться неограниченного пространства не нужно – проще заплатить. Именно поэтому и говорится про совсем хитрое шаманство, побаловаться интересно, а практической пользы маловато. Дело даже не в размерах файлов — никто не запрещает порезать архив на части, геморно это. Доступность? WebDAV как раз и решает вопрос с доступностью с чужой машины, т.к. используется стандартный софт и ничего своего ставить не потребуется. С шифрованием в этом случае пролетаешь, но получить доступ к зашифрованным разделам я и так могу в любое время с мобильного телефона. Или если очень прижмет – с любой современной операционной системы после доустановки нужного.

      • Phanthom

        кстати, на работе было не чем заняться – попробовал примонтировать фьюзером вебдиск яндеха. канал на отдачу 100 мбпс, 130 метровый файл писало на диск в районе 10 минут. канал был свободен полностью. Так что использование вебдисков пока не оправдано.

  • Nikola Tesla

    Примонтировал Yandex, понравилось. Вот только после всех вышеуказанных действий монтировать/отмонтировать раздел, равно как и загружать/удалять/перемещать/создавать файлы получается только через sudo nautilus. Это так и задумано? Ubuntu 13.04

    • http://anykeychhik.ru/ Ivush

      Посмотрел, забыл добавить что нужно разрешить обычным пользователям использовать davfs: sudo chmod 4755 /usr/sbin/mount.davfs

      • Александр Гречушников

        Не помогло. Все равно просит рут

  • Mikhail Zhilin

    fusefs-wdfs исчез из портов FreeBSD (печаль)