Яндекс.диск и Web.DAV. Автоматическое монтирование облачного диска.

В этом видео:
– что такое WebDAV и как его можно использовать с VPS;
– настройка подключения облачного хранилища по WebDAV.

Сегодня о том как подключить ваше облачное хранилище к вашему серверу или компьютеру на Linux по WebDAV на примере Yandex.Disk.
Webdav доступен и у других поставщиков облачных хранилищь, например, у GoogleDrive, Amazon, OneDrive. Yandex.Disk просто как пример.

Что такое WebDAV?
Из википедии:

WebDAV (Web Distributed Authoring and Versioning) или просто DAV — набор расширений и дополнений к протоколу HTTP, поддерживающих совместную работу пользователей над редактированием файлов и управление файлами на удаленных веб-серверах.

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

Что же мы имеем при подключении к облаку по webdav?
Мы получаем дополнильное место на вашем сервере – некое смонтированное пространство где могут находиться всякие файлы. Куда можно складывать бекапы и логи. Если вы доверяете своему облачному хранилищу, конечно! Ну или в рамках домашнего проекта это может быть не критичным.
Арендуя виртуаки у хостеров вы получаете 20-30 ГБ жёстного диска, что не всегда достаточно. Можно подключить бесплатный облачный диск, например, от Яндекса на 10ГБ. Почему бы и нет. Лишними ГБ не бывают.
А если у вас есть несколько серверов и вы купите, например, как я 1ТБ облачного хранилища, то дополнительное место на диске в пересчёте на сервер будет очень приемлемым.

Минусы. Низкая скорость работы – всё работает через сеть и зависит от ваших каналов в Интернет, задержек, сетевых аварий и тп. Так что для задач с высокой производительностью такой вариант не подойдёт. А вот хранить бекапы, логи, всякие полезные файлы и тп в самый раз.

Для сравнения я приведу своё предыдущее видео где я рассматривал возможность подключения облачного хранилища к Linux серверу на примере Yandex.Disk и его приложения для Linux. Данный метод требовал выделения аналогичного пространства на локальном диске под синхронизируемые файлы, что не всегда возможно.
Плюсы очевидны- скорость доступа к данным. Копия данных по сути лежит у вас на локальном диске. Если вы что-то хотите перенести в облако, вы просто копируете в специальную локальную папку и приложение уже само переносит данные в облако – загружая их через Интернет, но вас это не волнует. Если даже вы выключите сервер, то данные продолжат синхронизироваться после его включения. При подключении по webdav – копирование прирвётся с ошибкой.
Но каким бы хорошим не был метод с локальной копией и приложением – места на вашем VPS сервере не прибавится.

Переходим к подключению облачного диска по webdav!
Для начала необходимо добавить поддержку davfs для возможности подключения облачного хранилища как файловую систему:
# sudo apt-get install davfs2
Далее определяемся с директорией куда будем монтировать облачный диск. Я для этого создал отдельную директорию:
# sudo mkdir /mnt/yandex.disk

После этого можно проверить что мы можем смонтировать облачный диск.
# sudo mount -t davfs https://webdav.yandex.ru /mnt/yandex.disk/
Please enter the username to authenticate with server
https://webdav.yandex.ru or hit enter for none.
Username:
Please enter the password to authenticate user XXX with server
https://webdav.yandex.ru or hit enter for none.
Password:
alex@srv-sc-01:~$

В списке смонтированных систем появится Яндекс:
# df -h
Filesystem Size Used Avail Use% Mounted on
udev 487M 12K 487M 1% /dev
tmpfs 100M 1.1M 99M 2% /run
/dev/sda1 20G 5.3G 14G 28% /
...
https://webdav.yandex.ru 10G 79M 10G 1% /mnt/yandex.disk

Для того чтобы отмонтировать Яндекс.диск используем команду umount:
# sudo umount /mnt/yandex.disk
[sudo] password for alex:
/sbin/umount.davfs: waiting while mount.davfs (pid 25384) synchronizes the cache .. OK

Чтобы смонтировать с правами на определённого пользователя, а не только root (default).
# sudo mount -t davfs -o gid=1000,uid=1000 https://webdav.yandex.ru /mnt/yandex.disk/

Для того чтобы автоматизировать подключение облачного диска при старке система делаем следующее:
В файл secrets вписываем точку монтирования и логин-пароль к Яндекс.Диску:
# sudo nano /etc/davfs2/secrets
...
/mnt/yandex.disk логин пасс. - В пароле не должно быть #

Далее, в файл /etc/rc.local дописываем строку для автомантирования yandex.disk при старте системы (в обычном режиме). Смонтировать через fstab у меня не получилось (см. доп.инфу здесь).

# sudo nano /etc/rc.local
...
# Mount my Yandex.Disk drive:
sleep 60 && sudo mount -t davfs -o gid=1000,uid=1000 https://webdav.yandex.ru /mnt/yandex.disk/
exit 0

Теперь при запуске системы у вас будет монтировать Яндекс.Диск в систему.

На этом всё.
Удачи!

Ссылки:
WebDAV вики.
Доступ к Диску через WebDAV
Яндекс.Диск как файловая система
davfs2 Вики.
Форум русскоязычного сообщества Ubuntu
Автоматическое монтирование яндекс диска в linux