Снова про WebDAV и Облако Mail.Ru

    В каждой теме, касающейся Облака Mail.Ru, имеются комментарии — «когда будет WebDAV?» и родственное «Как подключить Облако Mail.ru как сетевой диск?». Судя по тому, что обещают уже несколько лет (хотя в облаке для бизнеса webdav имеется), бесплатные пользователи его не дождутся.

    В общем, гора к Магомету не идёт, но и Магомет как-то не торопился, хотя, казалось бы, все для этого есть — и реализации API, и реализации webdav-серверов. Вполне логично было бы взять и то, и другое и объединить.

    Что, собственно, и было сделано на базе
    и с некоторыми доработками оных получен WebDAV cloud.mail.ru.

    Для запуска под Windows требуется .NET Framework 4.5, под Linux — Mono 4.6. Параметры достаточно подробно описаны в readme проекта.

    • Файлы, превышающие максимальный размер, автоматически разбиваются на куски при закачке и собираются обратно при скачивании.
    • Частичное скачивание. Например, вы можете смотреть фильм, используя перемотку и не скачивая его полностью. К сожалению, стандартный windows webdav-клиент не умеет так, но с помощью RaiDrive (бесплатный), NetDrive (платный) — легко. Без подключения диска можно смотреть через PotPlayer.
    • [Updated 2017-06-01] Поддержка двухфакторной аутентификации
    • [Updated 2017-09-22] Присоединение расшаренных папок/файлов без траты собственного объёма диска
    • [Updated 2017-11-22] Шифрование данных XTS-AES-256
    • [Updated 2018-01-09] Встроенный запуск как windows service




    Спасибо за внимание.

    UPD. Спасибо coderun
    Подтверждаю работу в OS X (10.12) через Mono. Просто скачал Mono, установил пакет. Скачал с Гитхаба релиз для Mono, запустил в консоле mono /path/to/programm -p number_of_port и все заработало. Единственное что работать получилось только через ForkLift, в Finder не верно определяет оставшееся место поэтому никак нельзя ничего закачать.


    UPD.2 Небольшой FAQ из комментариев/вопросов

    UPD.3 2017-09-08 mail.ru открыла штатный доступ к webdav для платных аккаунтов

    UPD.4 2017-11-28 mail.ru выпустила собственное приложение (статья на гиктаймс). Если вас не интересует webdav, linux, закачка больших файлов и шифрование, то — Диск O:
    Поделиться публикацией
    Комментарии 89
      +1
      Я очень благодарен вам за WebDAV(mail.ru), но что будет с куском файла при передаче, если произойдет разрыв связи в сети? Возможно ли докачка в облако
        0
        «Снаружи», на уровне webdav, будет ошибка закачки целого файла. Соответственно, файл надо перезакачать.
        Докачкой (пока?) не занимался.
          0
          Спасибо за ваш труд!
            +1
            Для MacOS планируете?
              0
              Скорее всего, под Mono on MacOS заработает
                +1

                Да, работает. Благодарю.

              0
              Mail.Ru — корпорация Зла. Их агрессивная реклама это доказывает.
                +7
                Ну что же, пусть та сила, что вечно хочет зла (с нашей небольшой помощью) совершит благо
                  0
                  Впечатление, что, пока технарям не мешают, парни там творят чудеса. Как только кто-то из менеджмента обращает на конкретную разработку вопрос «а нам что с того?», так сразу возникают нелепости и откровенные глупости продаванские заумности.

                  Так что остается верить, что на webdav никто в большой мейле никогда не посмотрит как на средство заработать еще немного бонусов.
                  –4
                  Будьте добры, напишите, как пользоваться Вашей программой. Не имел раньше дела с github. а то у меня 1Тб на мейле, но ограничение размера просто убивает
                    +2
                    На гитхабе у проекта есть закладка Releases — там можно выкладывать уже скомпиливанные, готовые к употреблению программы. Для windows скачайте это и распакуйте в отдельную папку.

                    Должен предупредить, что в Windows webdav реализован, скажем так, не очень, поэтому использовать его как сетевой диск — не самый лучший выбор. Лучше использовать любой другой клиент — Total Commander c webdav-плагином, Far c NetBox-плагином, CarotDAV, BitKinex и т.п.

                    Тем не менее, если очень хочется

                    1. Разрешаем Basic Auth для встроенного в windows WebDAV:
                    • Нажмите Win+R, Наберите regedit, нажмите OK
                    • Идем по дереву в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters
                    • Щелкаем правой клавишей мыши на BasicAuthLevel, выбираем Modify
                    • В поле Value пишем 2, щелкаем OK.
                    • Перезагружаемся


                    2. По умолчанию, windows ограничивает максимальный размер файла для webdav в 5000000 байт, делаем 4Гб:
                    • Нажмите Win+R, Наберите regedit, нажмите OK
                    • Идем по дереву в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters
                    • Щелкаем правой клавишей мыши на FileSizeLimitInBytes, выбираем Modify
                    • Выбираем Decimal
                    • В поле Value пишем 4294967295, щелкаем OK.
                    • Перезагружаемся


                    3. В папке, где находится wdmrc.exe, создайте bat-файл со следующим содержимым:
                    rem пристрелить сервер, если уже запущен
                    taskkill /im wdmrc.exe
                    
                    rem запускаем сервер
                    start "WebDAV Cloud Mail.Ru" wdmrc.exe -p 3332
                    
                    rem подождем, пока запустится
                    ping 127.0.0.1 -n 6 > nul
                    
                    rem если диск V: уже подключен - отключим
                    net use V: /DELETE
                    
                    rem подключаем облако как диск V:
                    net use V: http://127.0.0.1:3332 <ваш_пароль_к_облаку> /USER:ваша_почта_с_облаком@mail.ru
                    


                    Запустите его (возможно, с правами администратора)
                    в результате запустится эмулятор webdav и появится диск V:

                      0
                      Возможно, если вам не нужен вебдав как диск и не нужно выполнять какие-то автоматические действия (копирование скриптами, использование в backup-программах и т.д.), вам будет проще использовать Облако Mail.ru в Total Commander
                        0
                        У меня и товарища не заработало через коммандную строку. Пишет, что команда выполнена успешно, но диск не появляется. Проделал ровно то же, только через графический интерфейс.
                        Непонятно только, куда копируется файл перед отправкой в Облако. И всё же есть некоторые проблемы с закачкой файлов более 2 ГБ и обратным закачиванием на компьютер — долго обрабатывает, с файлами до 2 ГБ проблемы нет.
                        Есть идея запускать приложение в качестве службы. А пока это первое и единственное нормально работающее решение.
                          0
                          Непонятно только, куда копируется файл перед отправкой в Облако.

                          Должен предупредить, что в Windows webdav реализован, скажем так, не очень, поэтому использовать его как сетевой диск — не самый лучший выбор.

                          Встроенный в Windows клиент WebDAV не копирует его, а зачем-то считывает, как будто в dev/null.
                          И это только начало, много еще непонятных кривулин.
                          Попробуйте, например, подключить диском облако Яндекса — такое же поведение.
                          На (относительно) мелких файлах не очень заметно, а с большими есть некоторая печаль
                          Лучше использовать любой другой клиент — Total Commander c webdav-плагином, Far c NetBox-плагином, CarotDAV, BitKinex и т.п.


                            0

                            как подключиться по Carot-DAV? какой URI писать?

                              0
                        +1
                        Огромное Вам спасибо! Действительно, работает!
                          0
                          Спасибо за программку, этого только и ждал!
                          Да, хейтерам мыла.ру — сервис бесплатный, ну где еще дадут терабайт за просто так и навсегда? Ежели что не нравится — отсылаю к народной мудрости про дареного коня.
                            –1
                            Специально сейчас зашёл на cloud.mail.ru, никаких терабайт там нет, 100Гб только бесплатно, дальше платно.
                              +3
                              Было время золотое, когда Облако Mail.Ru было еще маленьким — деревья у него были очень высокими :)
                                0
                                При открытии раздавали терабайт, многие забрали.
                                  0
                                  Это сейчас. А еще недавно раздавали по терабайту для хабровчан и я нахватал на все свои аккаунты. Абсолютно бесплатно, до сих пор работает и никто их не отобрал. В отличие от платного мелкософтовского сервиса, поменявшего условия задним числом.
                                    0
                                    Про терабайт уже выше ответили, а я добавлю, что и 100 Гб — очень неплохо бесплатно получить.
                                  0
                                  Размер максимального куска файла определяется автоматически?
                                    0
                                    Да, берётся информация от облака, каков максимально разрешенный размер файла для аккаунта.
                                    –1
                                    под Linux — Mono 4.6

                                    Чего? А я просто открываю webdav ресурсы в файловом менеджере Dolphin. Не припомню, чтобы дополнительно что-то ставил для этого.
                                    Неужто раньше этого (webdav) нельзя было сделать? В том же яндекс.диске уже давно это работает.
                                      0
                                      Собственно, об чём и статья — Яндекс.Диск предоставляет webdav, а вот Облако Mail.Ru — нет.

                                      Данная программа является неким прокси, который позволяет обмениваться данными с облаком по проколу webdav.
                                      0
                                      Благодарю за программу.

                                      Можно вызов архиватора или шифратора добавить. Что бы файлы в зашифрованном, а не открытом виде лежали в облаке, одной кнопкой?
                                        0
                                        Можно, при желании даже самому — исходники открыты на гитхабе.
                                        У меня это есть в планах, там даже кое-что как-то где-то написано в ветке dev-encrypt, но пока не знаю, когда смогу доделать.
                                      • НЛО прилетело и опубликовало эту надпись здесь
                                          0
                                          В барабанах линуксах я сам в общем-то ни бум-бум.

                                          В простейшем варианте
                                          • берем и распаковываем файл wdmrc-mono-*.tar.gz из последнего релиза
                                          • Устанавливаем моно — sudo apt install apt mono-complete
                                          • Запускаем из консоли сервер — mono wdmrc.exe -p {port}


                                          и из какого-нибудь файлового менеджера, например, того же Dolphin'а, подключаемся к http://127.0.0.1:{port}, указав логин/пароль от облака.

                                          Все можно сделать значительно красивее — устанавливать только необходимый функционал из моно, сделать демоном, выставить разрешения, автоматически монтировать в davfs2, но тут мне тоже надо гуглить и разбираться.
                                          • НЛО прилетело и опубликовало эту надпись здесь
                                              0
                                              расскажи плз потом как делать компиляцию,
                                              вещица жутко нужна.
                                              жаль что без костылей не работет.
                                        0

                                        Спасибо большое!

                                          0
                                          Не режет файлы почему-то. Выкидывает ошибку.
                                          image
                                            0
                                            Скорее всего вызвано тем, что файловый менеджер, в котором запустили копирование, пытается изменить свойства файла (дату, атрибуты, права), а само облако не реализует такого функционала.
                                            Возможно, в ближайшем будущем я что-нибудь с этим сделаю (в смысле, не реализую функционал, а буду подавлять эту ошибку)

                                            На данный момент нужно у файлового менеджера отключить изменение свойств. Например, в Far+Netbox при создании папки надо убрать галку «Установить разрешения»

                                            Если не трудно, отпишите в ЛС подробнее, чем копируете, точное название файла (а то, кажется, консолька его при выводе попортила) и его размер
                                              0
                                              Для CarotDAV'а —

                                              image
                                                0
                                                Спасибо. Работает!
                                                  0
                                                  По последним сведениям, CarotDAV не даёт копировать файлы больше 4Гб.
                                                  Проверил Total Commander — всё ок.
                                            0
                                            Подскажите клиента синхронизирующего папку на винде с WebDav и совместимого с данным прокси?
                                              0
                                              Любой, поддерживающий WebDAV
                                              Конкретно не могу посоветовать, не пользуюсь.
                                                0
                                                Пробовал Allway Sync, работает
                                                0
                                                А что насчёт двухфакторной авторизации?
                                                  0
                                                  Поскольку основная цель — использование в автоматическом режиме, без дополнительных ручных действий, то даже не думал.
                                                  Не могу обещать в ближайшее время.
                                                    +1
                                                    Сделал форк библиотеки автора с поддержкой двухфакторной авторизации http://ejuo.livejournal.com/35729.html. Можете её попробовать.
                                                      +1
                                                      Супер!
                                                      Только не забывайте обновлять саму библиотеку, со времен вашего последнего коммита был поправлен миллион багов.
                                                      Рекомендую Git — Подмодули
                                                      Ну или действительно форкнуть и мержить по мере надобности
                                                        0
                                                        Вот спасибо, мил человек! Правда, только со второго раза программа завелась Окошко, оставшееся после ввода кода авторизации лучше скрывать в трей :-) А то я после ввода кода закрыл окошко с мыслью, что сервис где-то в фоне висит и в итоге получил шиш с маслом. Ну и настройку добавления в автозапуск тоже бы было бы здорово, если бы вы добавили.
                                                        Заранее спасибо!
                                                        0
                                                        В версии 1.6.1 добавил (подсмотрел у EJUO )
                                                      0
                                                        +1

                                                        Ну да. Это годами известно. Только бесплатного гигабайта нет, а webdav давно есть.

                                                          0
                                                          «Тера-» Дима, «Тера-» ;)
                                                            0
                                                            «Земля! Земля!» — кричали с корабля
                                                              0
                                                              Тогда бы была «Терра» )
                                                        0
                                                        Опытным путём выяснили, что одной запущеной копии достаточно, чтобы подключить более одного аккаунта на одном компьютере (пробовали с двумя — работает). Идея попробовать запустить приложение на одном компьютере в сети, а подключить аккаунт в другом — не сработала. Не подключается. Удобненько было бы запустить на домашнем сервере «проксик», а на клиентских подключить диски. По возможности, ждём новых версий!
                                                          0
                                                          Все правильно, так можно.
                                                          Используйте при запуске ключ --host http://<IP компьютера>
                                                          Не забудьте открыть порт в файрволле.
                                                            0
                                                            Чудесато заработало! Спасибо!
                                                          0
                                                          в far с netbox не может ничего удалить (ни каталог ни файл)
                                                          [56]: DELETE:http://127.0.0.1:801/22222/:127.0.0.1:801 — Start processing
                                                          [56]: Unable to delete '/22222' directory.
                                                          System.AggregateException: Произошла одна или несколько ошибок. ---> System.Net.WebException: Удаленный сервер возвратил ошибку: (403) Запрещено.
                                                            0
                                                            Не смог воспроизвести, Far v.3.0.4774, NetBox v.2.3.0.436
                                                            Давайте в ЛС версию фара и нетбокса, здесь по результату отпишем
                                                              0
                                                              Разобрались с вопросом, вроде всё нормально.
                                                              Попутно выяснено, что mail.ru в логине необязательно писать.
                                                                0
                                                                Обманул.
                                                                С помощью kt368 выяснено, что если в логине не писать mail.ru (@mail.ua, etc.) то заходить заходит, но удалять запрещено.
                                                              +1
                                                              Подтверждаю работу в OS X (10.12) через Mono. Просто скачал Mono, установил пакет. Скачал с Гитхаба релиз для Mono, запустил в консоле mono /path/to/programm -p number_of_port и все заработало. Единственное что работать получилось только через ForkLift, в Finder не верно определяет оставшееся место поэтому никак нельзя ничего закачать.
                                                              А так по сути огромное спасибо. Отличная фича!
                                                                0
                                                                В 1.5.65 должон Finder заработать
                                                                +1
                                                                Всем привет.

                                                                Прогу можно запустить как службу вот по такому примеру
                                                                http://windowsnotes.ru/programs/kak-zapustit-prilozhenie-v-vide-sluzhby-windows/
                                                                там все доступно расписано, так что повторяться смысла нет)

                                                                image

                                                                  0
                                                                  в новой версии программы логин и пароль указываются непосредственно при входе в облако, тоесть скорее всего службу можно запустить без костыля nssm, сразу wdmrc.
                                                                  image
                                                                    0
                                                                    Теперь wdmrc сам может регистрироваться как сервис.
                                                                    Пример:
                                                                    wdmrc.exe --install wdmrc --port 801,802 --maxthreads 15 
                                                                    net start wdmrc

                                                                    зарегистрирует и запустит сервис 'wdmrc' на портах 801 и 802 с максимальным кол-вом одновременных обращений к облаку 15
                                                                  0
                                                                  добавили поддержку Облака mail.ru
                                                                  http://airexplorer.net/blog/

                                                                  еще не пробовал)
                                                                    0
                                                                    Проверил. Работает.
                                                                      0
                                                                      Только Win =(
                                                                      0

                                                                      Пытаюсь запускать под Линуксом:


                                                                      при попытке смонтировать — прогпмма "выдаёт" вот такую ошибку


                                                                      # mono ./wdmrc.exe -p 3009 
                                                                        WebDAVCloudMailRu: WebDAV emulator for Cloud.Mail.ru
                                                                        v.1.0.0.0
                                                                        yar229@yandex.ru
                                                                      [1]: WebDAV server running at http://127.0.0.1:3009
                                                                      [Threadpool worker]: OPTIONS:http://127.0.0.1:3009/:127.0.0.1:3009 - Start processing
                                                                      [Threadpool worker]: OPTIONS:http://127.0.0.1:3009/:127.0.0.1:3009 - Finished processing (7ms, HTTP result: 200)
                                                                      [Threadpool worker]: PROPFIND:http://127.0.0.1:3009/:127.0.0.1:3009 - Start processing
                                                                      [Threadpool worker]: Unexpected exception while handling request (method=PROPFIND, url=http://127.0.0.1:3009/, source=127.0.0.1:3009
                                                                      System.AggregateException: One or more errors occurred. ---> System.AggregateException: One or more errors occurred. ---> System.Net.WebException: Error: TrustFailure (Ssl error:1000007d:SSL routines:OPENSSL_internal:CERTIFICATE_VERIFY_FAILED) ---> Mono.Btls.MonoBtlsException: Ssl error:1000007d:SSL routines:OPENSSL_internal:CERTIFICATE_VERIFY_FAILED
                                                                      

                                                                      и ниже ещё 2 экрана красным.
                                                                      гуглёж по "Mono.Btls.MonoBtlsException: Ssl error:1000007d:" ничего вразумительного не дал...


                                                                      памагите, чяднт?

                                                                      +1
                                                                      ВНИМАНИЕ!
                                                                      Не отображает более 1999 файлов в папке!
                                                                      Само облако в веб интерфейсе говорит полное количество файлов, но при этом также не отображает более 1999 файлов.
                                                                      Насколько я понимаю выгрузить такое количество файлов можно только через родное приложение.

                                                                      Любая синхронизация при наличии папки с более 1999 фалов обречена на бесконечную заливку файлов в облако!
                                                                        0
                                                                        Само облако в веб интерфейсе говорит полное количество файлов, но при этом также не отображает более 1999 файлов.
                                                                        В веб интерфейсе в очередной раз дообновилась страница и все файлы отобразились. Но в webdav по прежнему только 1999.
                                                                          +1
                                                                          Спасибо за информацию.
                                                                          Исправлено в v.1.5.40
                                                                            +1
                                                                            Сверхоперативно :)
                                                                        0
                                                                        очень долгое зависания на операциях, сам файлик скачался быстро :-/

                                                                        [Threadpool worker]: PROPFIND:http://127.0.0.1:43123/fido/:127.0.0.1:43123 — Start processing
                                                                        [Threadpool worker]: PROPFIND:http://127.0.0.1:43123/fido/:127.0.0.1:43123 — Finished processing (1326ms, HTTP result: 207)
                                                                        [Threadpool worker]: GET:http://127.0.0.1:43123/fido/ru.pictures.psevdo.graf.7z:127.0.0.1:43123 — Start processing
                                                                        [Threadpool worker]: GET:http://127.0.0.1:43123/fido/ru.pictures.psevdo.graf.7z:127.0.0.1:43123 — Finished processing (7967ms, HTTP result: 200)
                                                                        [Threadpool worker]: PROPFIND:http://127.0.0.1:43123/:127.0.0.1:43123 — Start processing
                                                                        [Threadpool worker]: PROPFIND:http://127.0.0.1:43123/fido/:127.0.0.1:43123 — Start processing
                                                                        [Threadpool worker]: PROPFIND:http://127.0.0.1:43123/:127.0.0.1:43123 — Finished processing (2416ms, HTTP result: 207)
                                                                        [Threadpool worker]: PROPFIND:http://127.0.0.1:43123/:127.0.0.1:43123 — Start processing
                                                                        [Threadpool worker]: PROPFIND:http://127.0.0.1:43123/fido/:127.0.0.1:43123 — Finished processing (1331ms, HTTP result: 207)
                                                                        [Threadpool worker]: PROPFIND:http://127.0.0.1:43123/:127.0.0.1:43123 — Finished processing (217ms, HTTP result: 207)
                                                                        [Tt[Threadpool worker]: PROPFIND:http://127.0.0.1:43123/fido/:127.0.0.1:43123 — Start processing
                                                                        [Threadpool worker]: PROPFIND:http://127.0.0.1:43123/fido/:127.0.0.1:43123 — Finished processing (1400ms, HTTP result: 207)
                                                                          0
                                                                          и жутчайше грузит loadavg до 2,5…
                                                                          система конечно не самая мощная, старый комп переделанный под файловый сервак.
                                                                          абидно блин.
                                                                            0
                                                                            На своих виртуальных машинках не смог воспроизвести.
                                                                            Было бы неплохо завести issue и указать там OS, её версию и прочее сопутствующее окружение
                                                                          0
                                                                          Большое спасибо за проект, пытаюсь заставить слушать 0.0.0.0 (с опцией -h http://0.0.0.0), но при подключении получаю ошибку:
                                                                          Bad Request (Invalid host)


                                                                          Можно ли с этим что-то сделать? Linux, mono, docker.
                                                                            0
                                                                            -h http://*
                                                                              +2
                                                                              Спасибо! Ура, заработало =)))

                                                                              P.S. собрал докер-контейнер с текущей версией, если вдруг кому лень собирать — можно взять тут: https://hub.docker.com/r/monster1025/mailru-webdav-docker/
                                                                            +1
                                                                            Хорошие новости — mail.ru открыла webdav для платных аккаунтов
                                                                            help.mail.ru/cloud_web/app/webdav
                                                                              0
                                                                              Чем же это хорошие новости? Платный акк стоит 1300/мес.
                                                                              0
                                                                              Когда много файлов тупит по таймауту и не копирует =(
                                                                                +1

                                                                                Напишите, пожалуйста, подробнее — ОС, версия программы, используемый клиент, копирование туда или обратно, как воспроизвести. Лучше на гитхаб

                                                                                0
                                                                                yar229
                                                                                Кстати для линукса, если использовать RollingLogFileAppender, нужно исправить в wdmrc.config:
                                                                                <file value="logs\" />

                                                                                на:
                                                                                <file value="logs/" />

                                                                                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                                Самое читаемое