Skip to content

Instantly share code, notes, and snippets.

@starlinq
Last active June 25, 2023 16:57
Show Gist options
  • Save starlinq/4ef2ef4d348c1b81913a2a201f7ff09e to your computer and use it in GitHub Desktop.
Save starlinq/4ef2ef4d348c1b81913a2a201f7ff09e to your computer and use it in GitHub Desktop.
Подключение к Cloud.mail.ru с помощью WebDAV эмулятора в Убунту 18.04
title date
Подключение к Cloud.mail.ru с помощью WebDAV эмулятора в Убунту 18.04
2019-02-06

Подключение к Cloud.mail.ru с помощью WebDAV эмулятора в Убунту 18.04

Инструкцию для Убунту 20.04 см. здесь.

С 2019 года прекратилась поддержка ПК-клиент приложения Cloud.mail.ru для Linux (см. страницу https://help.mail.ru/cloud_web/app/about). Для многих людей, имеющих хороший объем диска в этом облачном хранилище, стал актульным вопрос что-же делать дальше.

Если у вас подключен платный тариф, вы можете подключиться к сервису по протоколу WebDAV. На вашем компьютере Облако будет выглядеть как обычная файловая система. Инструкция по такому подключению есть здесь https://help.mail.ru/cloud_web/app/webdav#linux

К счастью, такое подключение (WebDAV) стало также возможным обладателям бесплатного тарифа благодаря одному разработчику, который разместил код и инструкцию по его применению по адресу:

https://github.com/yar229

Однако инструкция на указанной странице очень краткая, поэтому мне захотелось добавить в нее больше деталей так, чтобы даже человек без большого опыта работы в Linux (Ubuntu) смог ею воспользоваться.

Итак для подключения к Облаку в Линукс (Убунту), нам необходимо следовать следующим шагам:

  1. Загрузка и установка WebDAV эмулятора

По ссылке https://github.com/yar229/WebDavMailRuCloud/releases/

загружаем свежую версию архива WebDAVCloudMailRu-*-dotNetCoreXX.zip и распаковыем ее в директории, которая будет служить установочной. Распаковщик через вызов меню правой кнопкой мыши, по умолчанию всегда создаёт директорию, имя которой будет таким же как и имя файла без расширения. В современной версии Убунту, если вы выделите директорию и снова нажмете правую клавишу мыши, вы можете запустить программу Terminal через меню.

Давайте посмотрим какие файлы там есть через команду ls

$ ls
CommandLine.dll                   NWebDav.Server.HttpListener.dll
log4net.dll                       wdmrc.config
MailRuCloud.TwoFA.UI.Console.dll  wdmrc.deps.json
MailRuCloud.TwoFA.UI.File.dll     wdmrc.dll
MihaZupan.HttpToSocks5Proxy.dll   wdmrc.exe
mrclient.dll                      wdmrc.runtimeconfig.json
mrclient.exe                      WinServiceInstaller.dll
Newtonsoft.Json.dll               YaR.Clouds.dll
NWebDav.Server.dll                YaR.Clouds.WebDavStore.dll

  1. Установка необходимых библиотек .NET Core (взято с https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/install)

Требования к Linux системе: RHEL, Ubuntu 18.04, Ubuntu 16.04, Ubuntu 14.04, Debian 9, Debian 8, Fedora 28, Fedora 27, CentOS / Oracle, OpenSUSE Leap, SLES

Минимально необходимая версия определяется версией .Net Core эмулятора WebDAVCloudMailRu-*-dotNetCoreXX.zip, dotNetCoreXX, если XX - 30, значит нам нужен .Net Core SDK (runtime) версии 3.0.

Команды для установки в Ubuntu 18.04 (для других дистрибутивов см. https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/install) в терминале:

wget https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo add-apt-repository universe
sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install dotnet-sdk-3.0

Если весь .Net Core SDK не нужен, замените последнюю строчку в командах выше на

sudo apt-get install dotnet-runtime-3.0

Можно посмотреть справочную информацию, что мы установили

$ dotnet --info

.NET Core SDK (reflecting any global.json):
 Version:   3.0.103
 Commit:    b7ef045669

Runtime Environment:
 OS Name:     ubuntu
 OS Version:  18.04
 OS Platform: Linux
 RID:         ubuntu.18.04-x64
 Base Path:   /usr/share/dotnet/sdk/3.0.103/

Host (useful for support):
  Version: 3.0.3
  Commit:  0090613580

.NET Core SDKs installed:
  3.1.300 [/usr/share/dotnet/sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.App 3.0.3 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 3.0.3 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

To install additional .NET Core runtimes or SDKs:
  https://aka.ms/dotnet-download

При появлении ошибки Unable to locate package dotnet-sdk-X.X, можно попробовать следующую команду

sudo dpkg --purge packages-microsoft-prod && sudo dpkg -i packages-microsoft-prod.deb
  1. Выбор порта и запуск эмулятора

Выбираем порт, который мы собираемся использовать для подключения к Облаку, в моем примере это 8888, тогда запуск сервиса из командной строки терминала должен быть

dotnet wdmrc.dll -p 8888

Эта команда будет работать, если ее запустить, например в Terminal, в той же директории, где мы распаковали архив WebDAVCloudMailRu-*-dotNetCoreXX.zip

Для того чтобы команда работала при каждой загрузке Убунту, необходимо добавить её в список приложений, загружаемых автоматически. Находим утилиту Startup Applications и запускаем ее, затем добавляем новое приложение, где в строке command пишем

dotnet /path-to/wdmrc.dll -p 8888 --cache-listing-depth 2

где заменяем path-to на ваш путь к wdmrc.dll файлу. Теперь перезагружаем Убунту и переходим к следующему шагу.

  1. Подключение к эмулятору по протоколу WebDAV из файлового менеджера

В файловом менеджере жмём ctrl+L и в строку вписываем dav://127.0.0.1:8888 жмём enter, система запросит логин и пароль к облаку, вводим (чтобы не набирать это снова и снова, необходимо выбрать пункт сохранения логина и пароля)

login: yourlogin@mail.ru password: yourpassword

и результат - вы в своём облаке.

В добавок после первого подключения лучше сделать закладку в файловом менеджере.

Copy link

ghost commented Jul 8, 2019

Всё работало до того, как я поменял пароль. После смены пароля и не могу зайти.

Удалите сохранённый пароль через seahorse и всё сново заработает.

@klos105
Copy link

klos105 commented Jul 8, 2019

Удалите сохранённый пароль через seahorse и всё сново заработает.

Спасибо. Помогло!))

@olegspk
Copy link

olegspk commented Jul 15, 2019

Сильно тормозит, загрузка папки несколько секунд, а где куча папок и файлов вечная загрузка, есть решения, как сделать работу комфортной?

@yar229
Copy link

yar229 commented Jul 16, 2019

Сильно тормозит, загрузка папки несколько секунд, а где куча папок и файлов вечная загрузка, есть решения, как сделать работу комфортной?

Проблема, собственно, в том, что клиент по отдельности запрашивает информацию по каждой вложенной папке/файлу, в результате - множество запросов к облаку.

В какой-то мере поможет запуск с ключом --cache-listing-depth 2, можно попробовать 3.

Copy link

ghost commented Aug 1, 2019

Все получилось, но как зайти на само облоко, нет я в ступоре ) ссылка в файл менеджере пишет "Invalid protocol"
Screenshot_20190801_164419

@artemsites
Copy link

СПАСИБО!!! Двухфакторную Защиту пришлось отключить...

@kos2290
Copy link

kos2290 commented Feb 1, 2020

Большое спасибо за статью! Настроил на Linux Mint 19.3 Cinnamon и всё работает.
Пришлось выключить 2-х факторную авторизацию.
Синхронизация работает.

@Rootdiv
Copy link

Rootdiv commented Feb 1, 2020

Спасибо, всё отлично работает.

@Pavel-Vinogradov
Copy link

Pavel-Vinogradov commented Sep 13, 2020

Привет, Ubnutu 20.04 не стабильно работает

менял --cache-listing-depth 2(3) все так же зависает
что может быть ??

@pust0ta
Copy link

pust0ta commented Oct 11, 2020

СПАСИБО!!! Двухфакторную Защиту пришлось отключить...
Инструкции mail.ru на этот счёт говорят следующее:
"Если в почтовом ящике включена двухфакторная аутентификация, вместо пароля нужно сгенерировать и указать код для внешнего приложения. Подробнее в статье «Внешние приложения»."

@starlinq
Copy link
Author

starlinq commented Oct 17, 2020

@Pavel-Vinogradov

Привет, Ubnutu 20.04 не стабильно работает

менял --cache-listing-depth 2(3) все так же зависает
что может быть ??

Я бы запустил в терминале следующую команду

dotnet /path-to/wdmrc.dll -p 8888 --cache-listing-depth 2

и посмотрел бы, что она выдает. Возможно, что там в текстовом выводе будет код или краткое описание ошибки.

@Pavel-Vinogradov
Copy link

@Pavel-Vinogradov

Привет, Ubnutu 20.04 не стабильно работает
менял --cache-listing-depth 2(3) все так же зависает
что может быть ??

Я бы запустил в терминале следующую команду

dotnet /path-to/wdmrc.dll -p 8888 --cache-listing-depth 2

и посмотрел бы, что она выдает. Возможно, что там в текстовом выводе будет код или краткое описание ошибки.

Посмотрел ошибок нет
{ WebDAVCloudMailRu: WebDAV emulator for Cloud.mail.ru
v.1.11.0.30
yar229@yandex.ru
[1]: OS Version: Unix 5.4.0.51
[1]: CLR: .NET Core 3.1.8
[1]: User interactive: True
[1]: Version: 1.11.0.30
[1]: Using proxy:
[1]: Max threads count: 5
[1]: Cloud protocol: WebM1Bin
[1]: Cache listings, sec: 30
[1]: List query folder depth: 2
[1]: Use locks: False
[1]: Start as service: False
[1]: WebDAV server running at http://127.0.0.1:8888/

}

@starlinq
Copy link
Author

starlinq commented Oct 19, 2020

@Pavel-Vinogradov

Привет, Ubnutu 20.04 не стабильно работает
менял --cache-listing-depth 2(3) все так же зависает
что может быть ??

Я бы запустил в терминале следующую команду
dotnet /path-to/wdmrc.dll -p 8888 --cache-listing-depth 2
и посмотрел бы, что она выдает. Возможно, что там в текстовом выводе будет код или краткое описание ошибки.

Посмотрел ошибок нет
{ WebDAVCloudMailRu: WebDAV emulator for Cloud.mail.ru
v.1.11.0.30
yar229@yandex.ru
[1]: OS Version: Unix 5.4.0.51
[1]: CLR: .NET Core 3.1.8
[1]: User interactive: True
[1]: Version: 1.11.0.30
[1]: Using proxy:
[1]: Max threads count: 5
[1]: Cloud protocol: WebM1Bin
[1]: Cache listings, sec: 30
[1]: List query folder depth: 2
[1]: Use locks: False
[1]: Start as service: False
[1]: WebDAV server running at http://127.0.0.1:8888/

}

Насколько я вижу, у вас устаревшая версия WebDAVCloudMailRu. Другой вопрос - когда программа зависает, сразу после инициализации или позже в процессе работы с файлами?

@Pavel-Vinogradov
Copy link

Pavel-Vinogradov commented Oct 20, 2020

Насколько я вижу, у вас устаревшая версия WebDAVCloudMailRu. Другой вопрос - когда программа зависает, сразу после инициализации или позже в процессе работы с файлами?

Привет актулизировал версию до WebDAVCloudMailRu: WebDAV emulator for Cloud.mail.ru
v.1.12.1.2

Зависает при работе с фалами
Двойная защита безопасности отключенна
Все равно , нет ответа от сервера
[14]: Cache hit: /46992149.pdf
[14]: PROPFIND:http://127.0.0.1:8888/46992149.pdf:127.0.0.1:8888 - Finished processing (0ms, HTTP result: 207)

Что означает 207

@yar229
Copy link

yar229 commented Oct 21, 2020

207 MULTI-STATUS
означает все в порядке )

Напишите, пожалуйста, сюда, с указанием версии программы, OS, webdav-клиента и логом программы.

@wzooroo
Copy link

wzooroo commented Oct 10, 2021

Никак не пойму как прописать логин и пароль на серверной версии линукс? "В файловом менеджере жмём ctrl+L и в строку вписываем dav://127.0.0.1:8888 " как это применить без десктопной версии линукс?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment