Как подключить Яндекс.Диск к Droplet’у на DigitalOcean

Яндекс.Диск и DigitalOcean

Размер диска самого доступного дроплета ($5/мес.) на DigitalOcean – 20 Gb, из которых около 8% займёт операционная система. Полезно иметь какой-то резерв, куда, в случае необходимости, можно будет скопировать бэкап или перенести данные со своего компьютера на свой виртуальный сервер из другого облачного хранилища.

У Яндекс.Диска, помимо веб-интерфейса и программы синхронизации, реализован доступ по протоколу WebDAV, и 20 Gb бесплатного дискового пространства можно подключить к дроплету как дополнительный диск, не устанавливая „демон“ для синхронизации.
С Dropbox такой трюк не пройдёт, поскольку разработчики Dropbox не предоставляют доступ по WebDAV и не собираются (пока) его реализовывать. А если устанавливать Dropbox в систему (CLI-версию для Linux), потеряется смысл всей затеи подключить дополнительное место.
У Box хотя и доступно 50 Gb, в бесплатной версии есть ограничение на максимальный размер файла (250 Mb) и на трафик (до 10 Gb/мес.)

Итак, останавливаем свой выбор на Яндекс.Диске, и подключаем его к Droplet’у на DigitalOcean.

Установка и настройка davfs2

Логинимся по SSH в свой дроплет, и ставим пакет davfs2:
# sudo apt-get install davfs2
Далее переконфигурируем пакет, чтобы пользователи, отличные от root, тоже могли монтировать Яндекс.Диск:
# sudo dpkg-reconfigure davfs2
и в экране выбора привилегий отвечаем “Yes”.

Настройка точки монтирования

Создаём папку, в которую будет подключаться Яндекс.Диск:
# sudo mkdir /yandex.disk
Разрешаем запись в неё всем пользователям (если считаете это нужным):
# sudo chmod 777 /yandex.disk

Настройка разрешений для подключения от имени пользователя

Для того, чтобы простой пользователь (от имени которого вы обычно работаете, от имени которого работает сервер, и т.п.) имел возможность подключить/отключить Яндекс.Диск, добавьте этого пользователя в группу davfs2:
# sudo vi /etc/group
i

Находите там (где-то в конце) группу davfs2 и после двоеточия дописываете имя пользователя:
davfs2:x:123:ВашеИмяПользователя
Сохраняем файл и выходим из редактора:
Esc
:wq

А. Подключение Яндекс.Диска автоматически при загрузке

Удобно подключать Яндекс.Диск автоматически, и тогда он будет доступен сразу после запуска системы или перезагрузки.
Для этого нужно:
1. Сохранить учётные данные для доступа к Яндекс.Диску в системной папке,
2. Настроить автомонтирование.

Редактируем файл, доступный только пользователю root:
# sudo vi /etc/davfs2/secrets
i

и дописываем в конце строку, указав в ней точку монтирования, имя пользователя Яндекс.Диска, и пароль в кавычках (если вы используете в нём символы #$^& и/или пробел):
/yandex.disk ИмяПользователяЯндексДиска "пароль"
Вместо точки монтирования можно указывать и URL WebDAV-службы.
После этого сохраняем файл:
Esc
:wq

Теперь настраиваем автомонтирование облачного хранилища при загрузке системы.
Открываем для редактирования файл fstab:
# sudo vi /etc/fstab
i

И дописываем строку следующего содержания:
https://webdav.yandex.ru /yandex.disk davfs user,rw,_netdev,noexec,file_mode=600,dir_mode=700 0 0
Сохраняем файл:
Esc
:wq

Готово. Теперь при перезапуске нашего Droplet’а на DigitalOcean у нас должен автоматически подключаться Яндекс.Диск.

Б. Подключение Яндекс.Диска вручную

Если вы не хотите, чтобы Яндекс.Диск подключался сразу при загрузке системы, можно подключать его вручную, когда понадобится. При этом вы можете настроить как автоматическую авторизацию, указав в /etc/davfs2/secrets имя пользователя и пароль, так и сохранять учётные данные на уровне пользователя.

Пусть у каждого пользователя свои учётные данные для Яндекс.Диска находятся в файле ~/.davfs2/secrets.
Тогда в файле /etc/davfs2/davfs2.conf конфигурации демона davfs2 нужно раскомментировать следующую строку:
secrets ~/.davfs2/secrets
И для каждого пользователя, который будет монтировать каталог Яндекс.Диска, создайте файл secrets, содержащий учётные данные:
# mkdir ~/.davfs2
# vi ~/.davfs2/secrets
i

Введите строку:
https://webdav.yandex.ru ИмяПользователяЯндексДиска "пароль"
И сохраните файл:
Esc
:wq

Теперь нужно настроить точку монтирования облачного хранилища при для подключения вручную.
Открываем для редактирования файл fstab:
# sudo vi /etc/fstab
i

И дописываем строку следующего содержания:
https://webdav.yandex.ru /yandex.disk davfs user,rw,noauto,noexec,file_mode=600,dir_mode=700 0 0
Сохраняем файл:
Esc
:wq

В отличие от примера А с автоматическим монтированием Яндекс.Диска, здесь вместо опции _netdev (монтирование после поднятия сетевого интерфейса) мы указываем noauto – без автоматического монтирования.

Для подключения сетевого ресурса нужно будет выполнять команду
# mount /yandex.disk
А для отключения – команду
# umount /yandex.disk

Проверка подключения Яндекс.Диска

Если вы всё выполнили правильно, то теперь без труда подключите Яндекс.Диск командой
# mount /yandex.disk
Посмотрим, что у нас хранится на Яндекс.Диске:
# ls /yandex.disk
lost+found

Когда Яндекс.Диск пустой, то будет отображаться только служебная директория lost+found, которую создаёт локально демон davfs2.

Поглядим, сколько у нас доступного места:
# df -h /yandex.disk
Filesystem                Size  Used Avail Use% Mounted on
https://webdav.yandex.ru   20G     0   20G   0% /yandex.disk

Отлично, дело сделано! Можно пользоваться Яндекс.Диском.

Ложка дёгтя в бочке мёда

Яндекс.Диск показывает хорошую скорость чтения файлов, от 60 до 80 Мбит/с. Но вот на запись он ооочень медленный. davfs2 быстро кэширует файлы, которые вы заливаете на Яндекс.Диск, и дальше они отправляются в интернет чуть ли не часами со палеозойской скоростью ≈100 Кбит/с.

Ссылки

1. Mounting a WebDAV directory in Linux (Ubuntu)
2. Использование утилиты davfs2 для монтирования сетевых облачных хранилищ по протоколу WebDAV
3. Яндекс.Диск как файловая система (Habrahabr)
4. fstab

Как подключить Яндекс.Диск к Droplet’у на DigitalOcean: 2 комментария

  1. Я к своему домашнему файловому хранилищу сделал доступ через Webdav, вот сейчас подумал а может и его к дроплету подключить? :) Правда у меня adsl и обратный канал всего мегабит, но, все-равно, быстрее чем ядиск :)

Добавить комментарий