В общем, гора к Магомету не идёт, но и Магомет как-то не торопился, хотя, казалось бы, все для этого есть — и реализации API, и реализации webdav-серверов. Вполне логично было бы взять и то, и другое и объединить.
Что, собственно, и было сделано на базе
и с некоторыми доработками оных получен WebDAV cloud.mail.ru.
Для запуска под Windows требуется .NET Framework 4.5, под Linux — Mono 4.6. Параметры достаточно подробно описаны в readme проекта.
Файлы, превышающие максимальный размер, автоматически разбиваются на куски при закачке и собираются обратно при скачивании. Где-то в планах — шифрование.
Спасибо за внимание.
UPD. Спасибо coderun
Подтверждаю работу в OS X (10.12) через Mono. Просто скачал Mono, установил пакет. Скачал с Гитхаба релиз для Mono, запустил в консоле mono /path/to/programm -p number_of_port и все заработало. Единственное что работать получилось только через ForkLift, в Finder не верно определяет оставшееся место поэтому никак нельзя ничего закачать.
UPD.2 Небольшой FAQ из комментариев/вопросов
Комментарии (74)
yar229
05.02.2017 18:36«Снаружи», на уровне webdav, будет ошибка закачки целого файла. Соответственно, файл надо перезакачать.
Докачкой (пока?) не занимался.
demshin
05.02.2017 20:29+1Для MacOS планируете?
RubberSoul
05.02.2017 21:21Mail.Ru — корпорация Зла. Их агрессивная реклама это доказывает.
yar229
05.02.2017 21:21+7Ну что же, пусть та сила, что вечно хочет зла (с нашей небольшой помощью) совершит благо
dmitry_ch
05.02.2017 23:33Впечатление, что, пока технарям не мешают, парни там творят чудеса. Как только кто-то из менеджмента обращает на конкретную разработку вопрос «а нам что с того?», так сразу возникают нелепости и откровенные
глупостипродаванские заумности.
Так что остается верить, что на webdav никто в большой мейле никогда не посмотрит как на средство заработать еще немного бонусов.
shmulka
06.02.2017 00:04-4Будьте добры, напишите, как пользоваться Вашей программой. Не имел раньше дела с github. а то у меня 1Тб на мейле, но ограничение размера просто убивает
yar229
06.02.2017 00:21+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:
yar229
06.02.2017 00:28Возможно, если вам не нужен вебдав как диск и не нужно выполнять какие-то автоматические действия (копирование скриптами, использование в backup-программах и т.д.), вам будет проще использовать Облако Mail.ru в Total Commander
enamchuk
06.02.2017 04:44У меня и товарища не заработало через коммандную строку. Пишет, что команда выполнена успешно, но диск не появляется. Проделал ровно то же, только через графический интерфейс.
Непонятно только, куда копируется файл перед отправкой в Облако. И всё же есть некоторые проблемы с закачкой файлов более 2 ГБ и обратным закачиванием на компьютер — долго обрабатывает, с файлами до 2 ГБ проблемы нет.
Есть идея запускать приложение в качестве службы. А пока это первое и единственное нормально работающее решение.yar229
06.02.2017 09:00Непонятно только, куда копируется файл перед отправкой в Облако.
Должен предупредить, что в Windows webdav реализован, скажем так, не очень, поэтому использовать его как сетевой диск — не самый лучший выбор.
Встроенный в Windows клиент WebDAV не копирует его, а зачем-то считывает, как будто в dev/null.
И это только начало, много еще непонятных кривулин.
Попробуйте, например, подключить диском облако Яндекса — такое же поведение.
На (относительно) мелких файлах не очень заметно, а с большими есть некоторая печаль
Лучше использовать любой другой клиент — Total Commander c webdav-плагином, Far c NetBox-плагином, CarotDAV, BitKinex и т.п.
25080205
06.02.2017 01:43Спасибо за программку, этого только и ждал!
Да, хейтерам мыла.ру — сервис бесплатный, ну где еще дадут терабайт за просто так и навсегда? Ежели что не нравится — отсылаю к народной мудрости про дареного коня.vanyas
06.02.2017 08:55-1Специально сейчас зашёл на cloud.mail.ru, никаких терабайт там нет, 100Гб только бесплатно, дальше платно.
yar229
06.02.2017 09:04+3Было время золотое, когда Облако Mail.Ru было еще маленьким — деревья у него были очень высокими :)
25080205
06.02.2017 17:09Это сейчас. А еще недавно раздавали по терабайту для хабровчан и я нахватал на все свои аккаунты. Абсолютно бесплатно, до сих пор работает и никто их не отобрал. В отличие от платного мелкософтовского сервиса, поменявшего условия задним числом.
lamo4ok
07.02.2017 08:35Про терабайт уже выше ответили, а я добавлю, что и 100 Гб — очень неплохо бесплатно получить.
AVX
06.02.2017 09:26-1под Linux — Mono 4.6
Чего? А я просто открываю webdav ресурсы в файловом менеджере Dolphin. Не припомню, чтобы дополнительно что-то ставил для этого.
Неужто раньше этого (webdav) нельзя было сделать? В том же яндекс.диске уже давно это работает.yar229
06.02.2017 09:42Собственно, об чём и статья — Яндекс.Диск предоставляет webdav, а вот Облако Mail.Ru — нет.
Данная программа является неким прокси, который позволяет обмениваться данными с облаком по проколу webdav.
ukt
06.02.2017 09:43Благодарю за программу.
Можно вызов архиватора или шифратора добавить. Что бы файлы в зашифрованном, а не открытом виде лежали в облаке, одной кнопкой?yar229
06.02.2017 09:45Можно, при желании даже самому — исходники открыты на гитхабе.
У меня это есть в планах, там даже кое-что как-то где-то написано в ветке dev-encrypt, но пока не знаю, когда смогу доделать.
ruwebstyle
06.02.2017 10:56Можно инструкцию для Linux на русском? По ссылкам не совсем всё ясно.
yar229
06.02.2017 11:31В
барабанахлинуксах я сам в общем-то ни бум-бум.
В простейшем варианте
- берем и распаковываем файл wdmrc-mono-*.tar.gz из последнего релиза
- Устанавливаем моно — sudo apt install apt mono-complete
- Запускаем из консоли сервер — mono wdmrc.exe -p {port}
и из какого-нибудь файлового менеджера, например, того же Dolphin'а, подключаемся к http://127.0.0.1:{port}, указав логин/пароль от облака.
Все можно сделать значительно красивее — устанавливать только необходимый функционал из моно, сделать демоном, выставить разрешения, автоматически монтировать в davfs2, но тут мне тоже надо гуглить и разбираться.ruwebstyle
06.02.2017 11:45Благодарю, буду разбираться. Давно хотел избавиться от софта мейлру.
pfg21
06.02.2017 13:02расскажи плз потом как делать компиляцию,
вещица жутко нужна.
жаль что без костылей не работет.yar229
06.02.2017 15:17Вот здесь AlekseyNemiro подробно расписал, только сейчас исходники менять уже не надо.
commensal
06.02.2017 11:40Не режет файлы почему-то. Выкидывает ошибку.
yar229
06.02.2017 12:00Скорее всего вызвано тем, что файловый менеджер, в котором запустили копирование, пытается изменить свойства файла (дату, атрибуты, права), а само облако не реализует такого функционала.
Возможно, в ближайшем будущем я что-нибудь с этим сделаю (в смысле, не реализую функционал, а буду подавлять эту ошибку)
На данный момент нужно у файлового менеджера отключить изменение свойств. Например, в Far+Netbox при создании папки надо убрать галку «Установить разрешения»
Если не трудно, отпишите в ЛС подробнее, чем копируете, точное название файла (а то, кажется, консолька его при выводе попортила) и его размер
commensal
06.02.2017 12:37Подскажите клиента синхронизирующего папку на винде с WebDav и совместимого с данным прокси?
inoyakaigor
06.02.2017 13:23А что насчёт двухфакторной авторизации?
yar229
06.02.2017 13:28Поскольку основная цель — использование в автоматическом режиме, без дополнительных ручных действий, то даже не думал.
Не могу обещать в ближайшее время.
EJUO
08.02.2017 23:13+1Сделал форк библиотеки автора с поддержкой двухфакторной авторизации http://ejuo.livejournal.com/35729.html. Можете её попробовать.
yar229
08.02.2017 23:15+1Супер!
Только не забывайте обновлять саму библиотеку, со времен вашего последнего коммита был поправлен миллион багов.
Рекомендую Git — Подмодули
Ну или действительно форкнуть и мержить по мере надобности
inoyakaigor
09.02.2017 00:06Вот спасибо, мил человек!
Правда, только со второго раза программа завеласьОкошко, оставшееся после ввода кода авторизации лучше скрывать в трей :-) А то я после ввода кода закрыл окошко с мыслью, что сервис где-то в фоне висит и в итоге получил шиш с маслом. Ну и настройку добавления в автозапуск тоже бы было бы здорово, если бы вы добавили.
Заранее спасибо!
merl1n
06.02.2017 16:25А на yandex уже давно всё есть
http://privateblog.info/java-tips-and-tricks/poluchenie-spiska-fajlov-s-yandex-disk-cherez-webdav/
enamchuk
06.02.2017 19:45Опытным путём выяснили, что одной запущеной копии достаточно, чтобы подключить более одного аккаунта на одном компьютере (пробовали с двумя — работает). Идея попробовать запустить приложение на одном компьютере в сети, а подключить аккаунт в другом — не сработала. Не подключается. Удобненько было бы запустить на домашнем сервере «проксик», а на клиентских подключить диски. По возможности, ждём новых версий!
wanomgn
06.02.2017 20:28в 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) Запрещено.yar229
06.02.2017 20:33Не смог воспроизвести, Far v.3.0.4774, NetBox v.2.3.0.436
Давайте в ЛС версию фара и нетбокса, здесь по результату отпишем
coderun
07.02.2017 18:50+1Подтверждаю работу в OS X (10.12) через Mono. Просто скачал Mono, установил пакет. Скачал с Гитхаба релиз для Mono, запустил в консоле mono /path/to/programm -p number_of_port и все заработало. Единственное что работать получилось только через ForkLift, в Finder не верно определяет оставшееся место поэтому никак нельзя ничего закачать.
А так по сути огромное спасибо. Отличная фича!
C-A-T
07.02.2017 23:07+1Всем привет.
Прогу можно запустить как службу вот по такому примеру
http://windowsnotes.ru/programs/kak-zapustit-prilozhenie-v-vide-sluzhby-windows/
там все доступно расписано, так что повторяться смысла нет)
C-A-T
07.02.2017 23:13в новой версии программы логин и пароль указываются непосредственно при входе в облако, тоесть скорее всего службу можно запустить без костыля nssm, сразу wdmrc.
fuzzi
08.02.2017 22:24Пытаюсь запускать под Линуксом:
при попытке смонтировать — прогпмма "выдаёт" вот такую ошибку
# 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:" ничего вразумительного не дал...
памагите, чяднт?
commensal
11.02.2017 23:26+1ВНИМАНИЕ!
Не отображает более 1999 файлов в папке!
Само облако в веб интерфейсе говорит полное количество файлов, но при этом также не отображает более 1999 файлов.
Насколько я понимаю выгрузить такое количество файлов можно только через родное приложение.
Любая синхронизация при наличии папки с более 1999 фалов обречена на бесконечную заливку файлов в облако!commensal
11.02.2017 23:55Само облако в веб интерфейсе говорит полное количество файлов, но при этом также не отображает более 1999 файлов.
В веб интерфейсе в очередной раз дообновилась страница и все файлы отобразились. Но в webdav по прежнему только 1999.
lemproix
Я очень благодарен вам за WebDAV(mail.ru), но что будет с куском файла при передаче, если произойдет разрыв связи в сети? Возможно ли докачка в облако