Pull to refresh

Comments 94

Я очень благодарен вам за WebDAV(mail.ru), но что будет с куском файла при передаче, если произойдет разрыв связи в сети? Возможно ли докачка в облако
«Снаружи», на уровне webdav, будет ошибка закачки целого файла. Соответственно, файл надо перезакачать.
Докачкой (пока?) не занимался.

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

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

Так что остается верить, что на webdav никто в большой мейле никогда не посмотрит как на средство заработать еще немного бонусов.
Будьте добры, напишите, как пользоваться Вашей программой. Не имел раньше дела с github. а то у меня 1Тб на мейле, но ограничение размера просто убивает
На гитхабе у проекта есть закладка 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:

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

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

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


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

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

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

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

Можно вызов архиватора или шифратора добавить. Что бы файлы в зашифрованном, а не открытом виде лежали в облаке, одной кнопкой?
Можно, при желании даже самому — исходники открыты на гитхабе.
У меня это есть в планах, там даже кое-что как-то где-то написано в ветке dev-encrypt, но пока не знаю, когда смогу доделать.
UFO just landed and posted this here
В барабанах линуксах я сам в общем-то ни бум-бум.

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


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

Все можно сделать значительно красивее — устанавливать только необходимый функционал из моно, сделать демоном, выставить разрешения, автоматически монтировать в davfs2, но тут мне тоже надо гуглить и разбираться.
UFO just landed and posted this here
расскажи плз потом как делать компиляцию,
вещица жутко нужна.
жаль что без костылей не работет.
Не режет файлы почему-то. Выкидывает ошибку.
image
Скорее всего вызвано тем, что файловый менеджер, в котором запустили копирование, пытается изменить свойства файла (дату, атрибуты, права), а само облако не реализует такого функционала.
Возможно, в ближайшем будущем я что-нибудь с этим сделаю (в смысле, не реализую функционал, а буду подавлять эту ошибку)

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

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

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

«Земля! Земля!» — кричали с корабля
Опытным путём выяснили, что одной запущеной копии достаточно, чтобы подключить более одного аккаунта на одном компьютере (пробовали с двумя — работает). Идея попробовать запустить приложение на одном компьютере в сети, а подключить аккаунт в другом — не сработала. Не подключается. Удобненько было бы запустить на домашнем сервере «проксик», а на клиентских подключить диски. По возможности, ждём новых версий!
Все правильно, так можно.
Используйте при запуске ключ --host http://<IP компьютера>
Не забудьте открыть порт в файрволле.
Чудесато заработало! Спасибо!
в 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) Запрещено.
Не смог воспроизвести, Far v.3.0.4774, NetBox v.2.3.0.436
Давайте в ЛС версию фара и нетбокса, здесь по результату отпишем
Разобрались с вопросом, вроде всё нормально.
Попутно выяснено, что mail.ru в логине необязательно писать.
Обманул.
С помощью kt368 выяснено, что если в логине не писать mail.ru (@mail.ua, etc.) то заходить заходит, но удалять запрещено.
Подтверждаю работу в OS X (10.12) через Mono. Просто скачал Mono, установил пакет. Скачал с Гитхаба релиз для Mono, запустил в консоле mono /path/to/programm -p number_of_port и все заработало. Единственное что работать получилось только через ForkLift, в Finder не верно определяет оставшееся место поэтому никак нельзя ничего закачать.
А так по сути огромное спасибо. Отличная фича!
Всем привет.

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

image

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

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

еще не пробовал)
Проверил. Работает.

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


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


# 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:" ничего вразумительного не дал...


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

!!! ййййеааа!!!

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

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

[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)
и жутчайше грузит loadavg до 2,5…
система конечно не самая мощная, старый комп переделанный под файловый сервак.
абидно блин.
На своих виртуальных машинках не смог воспроизвести.
Было бы неплохо завести issue и указать там OS, её версию и прочее сопутствующее окружение
Большое спасибо за проект, пытаюсь заставить слушать 0.0.0.0 (с опцией -h http://0.0.0.0), но при подключении получаю ошибку:
Bad Request (Invalid host)


Можно ли с этим что-то сделать? Linux, mono, docker.
Спасибо! Ура, заработало =)))

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

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

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

на:
<file value="logs/" />
UFO just landed and posted this here
Теоретичски, конечно, можно :)
Но лично я не уверен, что имею достаточно ресурсов, чтобы поддерживать в работоспособном состоянии еще какие-то API
UPD.6 2019-12-19 Ввиду того, что Яндекс, похоже, душит и собирается приподзакрыть webdav, добавлена также поддержка Яндекс.Диска через web-протокол.
yar229, а есть какой нить чат в телеграмме или гитере? Для обсуждения вопросов / проблем / предложений и т.д.
Only those users with full accounts are able to leave comments. Log in, please.

Articles