Ранее рассматривалась возможность установки файловой системы davfs2 для монтирования облачных сетевых дисков по протоколу WebDav на роутерах с OpenWrt. Также была выявлена проблема с переносом в облако крупных файлов, которое в случае davfs2 происходит с обязательным дублированием всех файлов в кэше.
Частичным решением этого вопроса может стать использование отдельного WebDav-клиента. Изучение поисковиков говорит нам о том, что такой клиент в природе существует – и практически в единственном экземпляре. Это cadaver. И, как водится, под OpenWrt его никто не портировал – так что снова пытаемся решить вопрос портирования самостоятельно.
В ходе непродолжительных изысканий был составлен пакет cadaver, совместимый со стандартным OpenWrt Buildroot. Хранится он, как обычно, в нашем хранилище – fs.erinome.net.
К сожалению, данный пакет тащит за собой довольно большой хвост из зависимостей – это библиотеки libncurses, libreadline, а также знакомые по davfs2 libneon, libexpat и libopenssl. В откомпилированном виде для платформы ar71xx он занимает 81.5K свободного пространства без учета библиотек.
Применение клиента не представляет сложностей, все основные команды изложены в соответствующем ему мануале – например, на linux.die.net.
Пример загрузки файла на сервис Яндекс.Диск:
# cadaver https://webdav.yandex.ru WARNING: Untrusted server certificate presented for `webdav.yandex.ru': Issued to: ITO, Yandex, Moscow, Russia, RU Issued by: ld, yandex, ru Certificate is valid from Tue, 25 Sep 2012 11:43:32 GMT to Fri, 17 Jan 2014 15:15:46 GMT Do you wish to accept the certificate? (y/n) y Authentication required for Yandex.Disk on server `webdav.yandex.ru': Username: login Password: dav:/> put /srv/shared/WTFEntryOutComLp.wav /Music/WTFEntryOutComLp.wav Uploading /srv/shared/WTFEntryOutComLp.wav to `/Music/WTFEntryOutComLp.wav': Progress: [=============================>] 100.0% of 16581672 bytes succeeded. dav:/> exit Connection to `webdav.yandex.ru' closed. #
К сожалению, при помощи данной утилиты все же не представляется возможным передать динамически генерируемые файлы с STDIN. Зато крупные файлы можно загружать на удаленный хостинг без дублирования их в кэше.
Приветствую!
Скорее всего добавим cadaver в Entware. Получится своего рода обмен на davfs2 :-)
Правда на мой взгляд логичнее будет разместить пакет в SUBMENU:=File Transfer (вместо Filesystem)