Работа по WebDAV с облачным хранилищем Mail.ru#
Была задача по настройке такой радости для клиента.
Начнём с того, что WebDAV для обычных смертных закрыт (плати за бзнес-аккаунт), но есть костыль https://github.com/yar229/WebDavMailRuCloud#linux который помогает это преодолеть. Костыль представляет собой прокси между Mail.ru и WebDAV-клиентом. Таким образом WebDAV-клиент просто подключается к URI прокси вместо прямого подключения к webdav.mail.ru. Прокси же транслирует запросы от клиента (WebDAV) в запросы API Mail.ru и обратно. Конечно же это очень медленно.
Для костыля (далее прокси) есть готовые образы Docker (см. ссылки на GitHub). Сначала поставим докер: https://docs.docker.com/engine/install/#server
1. Ставим прокси в докер, возьмём этот имедж https://hub.docker.com/r/slothds/wdmrc-proxy/:
docker pull slothds/wdmrc-proxy
Запускаем контейнер:
docker run -d --restart always --name wdmrc-proxy -p 8010:8010 slothds/wdmrc-proxy:stable
Проверяем, что оно запустилось:
# Таким запросом нам должно вернуть HTTP код 401 curl 127.0.0.1:8010 -Lv
Монтируем диск. Здесь нам предложит ввести логин и пароль аккаунта Mail.ru:
root@cloud:~# mount --rw -t davfs http://localhost:8010 /mnt/webdav/ -o uid=1000 -o gid=1000 Please enter the username to authenticate with server http://localhost:8010 or hit enter for none. Username: xxxxxxxx@mail.ru Please enter the password to authenticate user xxxxxxxx@mail.ru with server http://localhost:8010 or hit enter for none. Password:
Не знаю, что я делал не так, но пароль из файла /etc/davfs2/secrets davfs отказывался читать и надо было руками вводить реквизиты. При этом надо отметить, что в этом случае нужны логин и пароль от самой учётки в Mail.ru, а не специальный пароль для внешних приложений.