DLink DNS-325 – подключаем через WebDav облачные хранилища

от автора

Помнится, давным-давно писал я статью о замечательных возможностях по расширению функциональности NAS’а DNS-325, и посетовал в статье, что, мол, не выходит, блин, завести на нем WebDAV для подключения, например, Яндекс.Диска. Но недавно это в некотором роде получилось, с помощью wwwalex, подсказавшего финт с редактированием исходников. Подробности под катом!

Важно. Подразумевается, что у вас уже установлен и настроен fun_plug, если нет – смотрите мою первую статью.

  1. Первым делом – обновляем библиотеки и устанавливаем важные приложения
    ipkg update ipkg install neon gcc optware-devel 

  2. Далее – скачиваем и распаковываем в любую директорию на 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 

  3. Далее делаем очень жесткую и опасную вещь – правим исходники приложения, отключая проверку на верность сертификата сервера. На самом деле, можно так не делать, а скачать соответствующий сертификат для каждого сервиса, после чего подключить его, следить за его обновлениями… Но я не придумал, как сделать это с минимумом проблем, а по сему идем по пути наименьшего сопротивления.
    Редактировать мы будем файл src/webdav.c, а конкретно – последнюю строчку в функции ssl_verify меняя return ret на return 0

  4. Компилируем и устанавливаем webdav2
    ./configure --prefix=/opt --with-neon=/opt && make && make install 

  5. Установили. Теперь через веб интерфейс NASа создаем пользователя davfs2 и группу пользователей davfs2
    groupadd davfs2 useradd -g davfs2 davfs2 

  6. Настраиваем параметры в файле /opt/etc/davfs2/davfs2.conf
    В частности, ставим ask_auth 0

    И cache_dir, например /mnt/HD/HD_a2/cache_webdav2
    (главное – не забыть создать папку cache_webdav2 и дать на неё права пользователю davfs2)

  7. Прописываем логин и пароль к нужному сервису, для примера – Яндекс.диска в файле /opt/etc/davfs2/secrets
    в виде
    удаленный_адрес		LOGIN		ПАРОЛЬ 

  8. Теперь мы можем монтировать винт, например, такой командной
    /sbin/mount.davfs https://webdav.yandex.ru /mnt/HD/HD_a2/yandex 

    Причем папку /mnt/HD/HD_a2/yandex предварительно нужно создать (и дать на неё права соответствующему пользователю).

  9. Отключить хранилище можно командой
    /sbin/umount.davfs /mnt/HD/HD_a2/yandex 

    Результат:

И вот казалось бы, светлое будущее настало, файлы с яндекс.диска в папке видны, пятилетку в 3 года и никто не уйдёт обиженным? Не совсем. Чтение файлов происходит нормально. А вот запись больших файлов или большого количество небольших идет примерно так:

  1. Файл быстро-быстро копируется во временную папку
  2. Процесс webdav2 перестаёт отзываться. Теперь зайти в папки с подмонтированными удаленными хранилищами нельзя (можно, но виснет при попытке получить список файлов).

При этом реально процесс на фоне работает, и когда файлы таки будут загружены в хранилище – подмонтированные хранилища начнут отзываться. Возможно, я чего-то не понял, или нужно поиграться с какими-то параметрами. Подобная проблема всплывает и на форумах, но полноценного решения её я не нашел.
Впрочем, есть отзывы и такие, что процесс зависает намертво, т.е. ничего не загружает. Правда, сам на это не наталкивался.

Ссылки

ссылка на оригинал статьи http://habrahabr.ru/post/179323/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *