Помнится, давным-давно писал я статью о замечательных возможностях по расширению функциональности NAS’а DNS-325, и посетовал в статье, что, мол, не выходит, блин, завести на нем WebDAV для подключения, например, Яндекс.Диска. Но недавно это в некотором роде получилось, с помощью wwwalex, подсказавшего финт с редактированием исходников. Подробности под катом!
Важно. Подразумевается, что у вас уже установлен и настроен fun_plug, если нет – смотрите мою первую статью.
И вот казалось бы, светлое будущее настало, файлы с яндекс.диска в папке видны, пятилетку в 3 года и никто не уйдёт обиженным? Не совсем. Чтение файлов происходит нормально. А вот запись больших файлов или большого количество небольших идет примерно так:
При этом реально процесс на фоне работает, и когда файлы таки будут загружены в хранилище – подмонтированные хранилища начнут отзываться. Возможно, я чего-то не понял, или нужно поиграться с какими-то параметрами. Подобная проблема всплывает и на форумах, но полноценного решения её я не нашел.
Впрочем, есть отзывы и такие, что процесс зависает намертво, т.е. ничего не загружает. Правда, сам на это не наталкивался.
Важно. Подразумевается, что у вас уже установлен и настроен fun_plug, если нет – смотрите мою первую статью.
- Первым делом – обновляем библиотеки и устанавливаем важные приложения
ipkg update ipkg install neon gcc optware-devel
- Далее – скачиваем и распаковываем в любую директорию на NAS’е davfs2, на момент написания статьи это версия 1.4.7
wget http://mirrors.zerg.biz/nongnu/davfs2/davfs2-1.4.7.tar.gz tar -xzf davfs2-1.4.7.tar.gz
- Далее делаем очень жесткую и опасную вещь – правим исходники приложения, отключая проверку на верность сертификата сервера. На самом деле, можно так не делать, а скачать соответствующий сертификат для каждого сервиса, после чего подключить его, следить за его обновлениями… Но я не придумал, как сделать это с минимумом проблем, а по сему идем по пути наименьшего сопротивления.
Редактировать мы будем файл src/webdav.c, а конкретно – последнюю строчку в функции ssl_verify меняя return ret на return 0
- Компилируем и устанавливаем webdav2
./configure --prefix=/opt --with-neon=/opt && make && make install
- Установили. Теперь через веб интерфейс NASа создаем пользователя davfs2 и группу пользователей davfs2
groupadd davfs2 useradd -g davfs2 davfs2
- Настраиваем параметры в файле /opt/etc/davfs2/davfs2.conf
В частности, ставим ask_auth 0
И cache_dir, например /mnt/HD/HD_a2/cache_webdav2
(главное – не забыть создать папку cache_webdav2 и дать на неё права пользователю davfs2)
- Прописываем логин и пароль к нужному сервису, для примера – Яндекс.диска в файле /opt/etc/davfs2/secrets
в виде
удаленный_адрес LOGIN ПАРОЛЬ
- Теперь мы можем монтировать винт, например, такой командной
/opt/sbin/mount.davfs https://webdav.yandex.ru /mnt/HD/HD_a2/yandex
Причем папку /mnt/HD/HD_a2/yandex предварительно нужно создать (и дать на неё права соответствующему пользователю).
- Отключить хранилище можно командой
/opt/sbin/umount.davfs /mnt/HD/HD_a2/yandex
Результат:
И вот казалось бы, светлое будущее настало, файлы с яндекс.диска в папке видны, пятилетку в 3 года и никто не уйдёт обиженным? Не совсем. Чтение файлов происходит нормально. А вот запись больших файлов или большого количество небольших идет примерно так:
- Файл быстро-быстро копируется во временную папку
- Процесс webdav2 перестаёт отзываться. Теперь зайти в папки с подмонтированными удаленными хранилищами нельзя (можно, но виснет при попытке получить список файлов).
При этом реально процесс на фоне работает, и когда файлы таки будут загружены в хранилище – подмонтированные хранилища начнут отзываться. Возможно, я чего-то не понял, или нужно поиграться с какими-то параметрами. Подобная проблема всплывает и на форумах, но полноценного решения её я не нашел.
Впрочем, есть отзывы и такие, что процесс зависает намертво, т.е. ничего не загружает. Правда, сам на это не наталкивался.