PDA

Bekijk de volledige versie : Монтирование облачного диска (DropBox, Яндекс.Диск, Box.com, GoogleDrive)



dfayruzov
06-09-2010, 19:40
Друзья,
призываю вас проголосовать за клиент Dropbox для архитектуры ARM:
https://www.dropbox.com/votebox/358/linux-arm-support

Штука крайне полезная. )

Spartach
07-09-2010, 06:32
Буквально 3-4 дня наз сам искал нет ли в природе такого.
Голосовать 100% надо, удобная вещь :-)

dfayruzov
07-09-2010, 07:06
Именно.
С ее помощью, например, можно реализовать полностью автоматическую торрент-качалку. Я у себя сделал так: торрент-клиент настроен автоматически забирать файлы из папки Dropbox/Torrents, выкладывать скачавшиеся торренты на сетевую шару.

PS: нажимать Vote можно не один раз. )

rocomua
29-12-2010, 07:03
А вариант для компиляции из сырцов подойдет, кто то умеет это?
https://www.dropbox.com/downloading?os=lnx

ryzhov_al
29-12-2010, 07:20
А вариант для компиляции из сырцов подойдет, кто то умеет это?
https://www.dropbox.com/downloading?os=lnxВстречный вопрос: а каким местом nautilus-dropbox-0.6.7.tar.bz2 относится к нашим роутерам?

Скорее речь идёт об этом (http://wiki.dropbox.com/TipsAndTricks/TextBasedLinuxInstall).

Upd. Исходных кодов нет, проект коммерческий. От клиента под ARM нам легче не станет. Лучше забыть.

ABATAPA
29-12-2010, 08:10
Именно.
С ее помощью, например, можно реализовать полностью автоматическую торрент-качалку. Я у себя сделал так: торрент-клиент настроен автоматически забирать файлы из папки Dropbox/Torrents, выкладывать скачавшиеся торренты на сетевую шару.


Зачем что-то городить, если все есть в Transmission? Есть папка "watch", есть опция переносить файл после скачивания/запускать скрипт.

MultiMan
29-12-2010, 08:44
Да, тоже хотел бы такой клиент получить...


ABATAPA
для того чтоб с iPad файлы закидывать, к примеру...
или с компа, сразу на удаленный сервер, где Самба по сети не работает.
Да и вообще много применений можно найти.

Сервис уже есть, странно им не пользоваться.

getikalex
29-12-2010, 13:48
Юзаю Dropbox больше года. Очень удобно для синхронизации рабочих документов на домашнем компе, рабочем и на ноутбуках.
А вот каким боком он по теме форума - для роутера может быть полезным - не особо вижу.

kolbasa
11-06-2011, 04:49
А есть возможность заставить motion складывать фотки не на юсби диск, а отправлять фотки на емайл или на облачный сервис, типа дропбокс?

Waterfall
13-06-2011, 14:56
Штатно такой функционал, кажется не предусмотрен, как минимум он не упоминается в конфиге motion.
Бить может поставить можно поставить dropbox на роутер и все дела. Если конечно если dropbox встанет на наши железки.

agpecam
14-01-2012, 08:48
А аналог дропбокса можно сделать на роутере? Чтобы заходить на роутер удаленно по http и качать/заливать свои файлы по сети.
Тогда дропбокс не нужен.
Это надежнее имхо. На сторонних серверах данных не нужно держать будет.

ryzhov_al
08-02-2012, 03:45
проверил. вроде работает: монтирует, копирует. Спасибо.Круто. Я и не знал, что можно удалённый ftp примонтировать как локальную файловую систему. Получается эдакий dropbox на базе роутера.

Кстати, надеюсь уже все заинтересованные прокачали на халяву свой аккаунт dropbox с двух до семи гигабайт? Подробности здесь (http://habrahabr.ru/blogs/hosting/137507/).

ryzhov_al
08-02-2012, 10:45
Время идёт, и у DropBox формируются вполне официальные и неофициальные API's (https://www.dropbox.com/developers/reference/sdk). API на Python, JavaScript и PHP вполне подходят для нашего роутера.
Вот (https://forum.openwrt.org/viewtopic.php?pid=153535) пример установки нативного API Python на OpenWRT, включающего CLI для работы с DropBox. Перечень команд CLI:

$ grep -E "\"\"\"[a-z]" ./dropbox-1.3/example/cli_client.py
"""list files in current remote directory"""
"""change current working directory"""
"""log in to a Dropbox account"""
"""log out of the current Dropbox account"""
"""display the contents of a file"""
"""create a new directory"""
"""delete a file or directory"""
"""move/rename a file or directory"""
"""display account information"""
"""exit"""
Теоретически, используя python-FUSE (http://sourceforge.net/apps/mediawiki/fuse/index.php?title=FUSE_Python_tutorial) или inotify-tools (https://github.com/rvoicilas/inotify-tools/wiki/) вполне по силам написать замену стандартному DropBox-клиенту.

Честно говоря, даже без официального MIPSEL-клиента мы с вами ограничены лишь собственной фантазией. С помощью приведённых API's можно:

отправлять логи роутера в DropBox,
принимать на роутер torrent-файлы для закачки с помощью transmission или даже шире: ничего не мешает написать небольшого робота, который будет исполнять список команд в текстовом файле,
отправлять SMS-ки и выполнять прочую автоматику простым закидыванием файликов в DropBox-папку на ПК. Представляете, web-галлерею на роутере чайник сможет обновлять просто копируя фотографии себя любимого в DropBox-папку на ПК,
отправлять в DropBox картинки с web-камеры, подключенной к роутеру,
автоматически пересобирать небольшие сайты, используя папки общего доступа DropBox.
И далее, и далее.

UPD 09.02.12. Добавил в новый репозиторий пакет python-dropbox со всеми зависимостями, r360 (http://code.google.com/p/wl500g-repo/source/detail?r=360). Теперь ВropBox API можно поставить, выполнив:

$ opkg install python-dropbox

ryzhov_al
25-02-2012, 11:28
Коллеги, есть ли среди вас хотя бы начинающие python-программисты? Моих знаний хватило только на адаптацию существующего скрипта (https://plus.google.com/u/1/109355099190370774688/posts/ZmHemx1v7Ud), с помощью которого можно закачивать файлы из роутера в DropBox. В официальном API (https://www2.dropbox.com/developers/start/setup#python) есть всё необходимое для любых манипуляций с файлами в облаке, но моих знаний на всё не хватает.

Ниже приведена пошаговая инструкция для реализации загрузки файлов в DropBox.

0. Установите API для DropBox из моего репозитория:

$ opkg install python-dropbox
1. Скачайте и распакуйте приложенный к этому посту python-скрипт uploadDropboxScript.py:

$ wget -O /opt/tmp/uploadDropboxScript.gz http://www.wl500g.info/attachment.php?attachmentid=8661&d=1330173668
$ gzip -cd /opt/tmp/uploadDropboxScript.gz > /opt/bin/uploadDropboxScript.py
$ chmod +x /opt/bin/uploadDropboxScript.py
$ rm /opt/tmp/uploadDropboxScript.gz
2. Создайте ключ аутентификации приложения и пропишите его в скрипт.
Вы должны зайти на сайт dropbox.com со своими учётными данными, пройти по этой (https://www2.dropbox.com/developers/apps) ссылке и создать новое приложение. В ответ на это вы получите пару APP_KEY, APP_SECRET, которую нужно вписать в соответствующие переменные скрипта /opt/bin/uploadDropboxScript.py.

3. Разрешите скрипту доступ к вашему аккаунту.
Аутентификация между сервером DropBox и вашим скриптом проводится по ставшему достаточно популярным механизму OAuth (http://ru.wikipedia.org/wiki/OAuth). Примером могу служит сайты, предлагающие "Войти, используя аккаунт Google" или "Войти, используя аккаунт ВКонтакте". Запустите скрипт с ключом "-s":

$ uploadDropboxScript.py -s
В ответ скрипт выдаст URL, который необходимо скопировать в адресную строку браузера и пройти по нему. Когда увидите в браузере сообщение об успешной аутентификации, то возвращайтесь к терминалу роутера и нажимайте <Enter>. Скрипт завершит свою работу, записав полученный токен, который в будущем будет использоваться для авторизации.
Настройка скрипта завершена.

4. Используйте скрипт для загрузки файлов в облако!
Например, можно отослать системный лог роутера:

$ uploadDropboxScript.py -f /tmp/syslog.log

Последнюю строчку можно вносить в любые скрипты автоматизации, никаких интерактивных взаимодействий скрипту больше не надо. Прошу учесть существования лимита в 5000 обращений к API DropBox в сутки для каждого токена.

ryzhov_al
28-02-2012, 12:26
На хабре где-то пробегала статья о совместном использовании DropBox и торрент-клиента для автоматизации закачек:
Именно.
С ее помощью, например, можно реализовать полностью автоматическую торрент-качалку. Я у себя сделал так: торрент-клиент настроен автоматически забирать файлы из папки Dropbox/Torrents, выкладывать скачавшиеся торренты на сетевую шару.Но нигде не пробегала информация об использовании этой связки на headless non-X86 машинах. Гугление показывает, что желающих осуществить эту связку достаточно, но готовых решений не найти. Так что не исключено, что мы с вами в этом деле будем первые.



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

Скрипт устанавливается и настраивается аналогично предыдущему (п.п.0,1,2.3). Перед использованием скрипта проверьте строчки с константами REMOTE_DIR, LOCAL_DIR, которые должны указывать на выбранную папку аккаунта Dropbox и на watchdir-папку transmission на роутере соответственно.

Я поместил этот скрипт в crontab для периодического исполнения и разрешил фичу watchdir (https://trac.transmissionbt.com/wiki/EditConfigFiles) в transmission:

$ grep -E "watch|trash" /opt/etc/transmission/settings.json
"trash-original-torrent-files": true,
"watch-dir": "/opt/etc/transmission/watchdir",
"watch-dir-enabled": true


При работе скрипт проверяет наличие файлов в выбранной вами DropBox папке и если они там появляются, то закачивает их из облака, подкладывает в watchdir-папку transmission и удаляет оригиналы.

Transmission, в свою очередь, обнаружив новые torrent-файлы в watchdir-папке добавляет их в список закачек и очищает watchdir-папку.

Скрипт позволит вам добавлять задания торрент-клиенту в том числе тогда, когда роутер находится за NAT'ом провайдера и не имеет белого IP.

Признаком того, что всё работает как надо будет исчезновение исходных torrent-файлов из DropBox-папки. Это означает то, что роутер их "забрал" и принял в работу.

Spartach
28-02-2012, 13:05
Идея с DropBox очень полезна, с торрен качалкой для меня не актуально, а вот как резервная копия TrueCrypt образа лежащего в каталоге DropBox очень даже актуальна.
Из реализуемой схемы не нравится только одно - необходимость регулярно проверять наличие файла и сверка "версионности".
Позволяет ли API держать постоянный коннект и получать события о изменениях? На питоне не пишу а вот на PHP мог бы попробовать демона реализовать.

ryzhov_al
28-02-2012, 13:47
Из реализуемой схемы не нравится только одно - необходимость регулярно проверять наличие файла и сверка
"версионности".Я бы предположил, что это скорее плюс, чем минус. У нас через API есть возможность скачивания любой ревизии файла, в том числе удалённого, так как хранилище Dropbox очень схоже с системой контроля версий как, например, SVN. Загляните в SDK (https://www.dropbox.com/developers/reference/sdk): если эта возможность "мешает", то можно просто её не использовать. Для поиска изменений файлов в облаке есть возможность получения порции метаданных, из которой можно извлечь всю необходимую инфорацию.
Позволяет ли API держать постоянный коннект и получать события о изменениях? На питоне не пишу а вот на PHP мог бы попробовать демона реализовать.
насколько я понял, нет. Это http-запрос\ответ.
число обращений в сутки для одного токена ограничено пятью тысячами,
официального PHP SDK нет, но есть неофициальный,
возможности SDK ограничены пересылкой файлов до 125Мб, поэтому файлы бэкапов\образов truecrypt придётся дробить.

Spartach
28-02-2012, 14:06
Да, сразу бросается в глаза 2 проблемы:
1. На роутере лежит актуальный образ TC размером допустим 3 Гб, фиксируем изменение образа в каталоге ВropBox, не качать же все 3 гига заново, нужна только бинарная разница...
2. ограничение по 125 Мб тоже немного портят картину...

ryzhov_al
04-04-2012, 07:24
Обновил пакет python-dropbox в связи с выходом новой версией Dropbox Python API v1.4. Среди новшеств API - возможность (https://www.dropbox.com/developers/reference/api#delta) вычисления бинарной разницы между локальными файлами и файлами в облаке и возможность (https://www.dropbox.com/developers/reference/api#copy_ref) копировать файлы в облаке из одного аккаунта в другой, не прибегая к скачиванию.

Приведённые в теме скрипты остаются работоспособными, проверил. Кроме того, в связи с апдейтом python до v2.7.3rc2 исчез баг, мешающий работать с CLI-клиентом DropBox, входящим (https://www.dropbox.com/static/developers/dropbox-python-sdk-1.4.zip) в качестве примера в официальный API.

lohmat
06-04-2012, 09:03
Добрый день, хочу прикрутить скрипт отправки файлов на dropbox к motion, но споткнулся на конфигурации скрипта, на этом пункте:


[B]... Запустите скрипт с ключом "-s":

$ uploadDropboxScript.py -s
В ответ скрипт выдаст URL, который необходимо скопировать в адресную строку браузера и пройти по нему...

У меня выдает следующие:

[admin@WL-20CF30CE3F64 root]$ uploadDropboxScript.py -s
Traceback (most recent call last):
File "/opt/bin/uploadDropboxScript.py", line 10, in <module>
from dropbox import client, rest, session
File "/opt/lib/python2.7/site-packages/dropbox/__init__.py", line 1, in <module>
import client, rest, session
File "/opt/lib/python2.7/site-packages/dropbox/client.py", line 8, in <module>
import simplejson as json
ImportError: No module named simplejson

В phyton-е ничего не смыслю, в чем может быть проблема?

P.S.
Установленные пакеты:

[admin@WL-20CF30CE3F64 root]$ opkg list-installed
alsa-lib - 1.0.24.1-1
coreutils - 8.8-1
distribute - 0.6.21-1
ffmpeg - 0.8.7-1
ffprobe - 0.8.7-1
glib2 - 2.26.1-2
ldconfig - -104
libbz2 - 1.0.6-1
libc - -104
libffi - 3.0.9-1
libffmpeg-full - 0.8.7-1
libgcc - -104
libiconv-full - 1.11.1-1
libintl-full - 0.18.1.1-1
libjpeg - 6b-1
libncurses - 5.7-5
libopenssl - 1.0.1-1
libpthread - -104
librt - -104
libslang2 - 2.2.3-1
libstdcpp - -104
mc - 4.8.2-1
motion - 20110826-051001-2
nano - 2.2.6-1
openssl-util - 1.0.1-1
python - 2.7.3rc2-2
python-cjson - 1.0.5-1
python-dropbox - 1.4-1
python-mini - 2.7.3rc2-2
python-oauth - 1.0.1-1
python-openssl - 2.7.3rc2-2
simplejson - 2.2.1-1
terminfo - 5.7-5
uclibc-opt - 0.9.32-1
zlib - 1.2.5-1
[admin@WL-20CF30CE3F64 root]$

ryzhov_al
06-04-2012, 14:23
в чем может быть проблема?В связи с обновлением python в рерпозитории OpenWRT до версии 2.7.3rc2 необходима переустановка всех пакетов с модулями python.

Это единственный корректный способ вернуть в строй pyload, python-dropbox и другие программы, написанные на python.

lohmat
06-04-2012, 15:54
В связи с обновлением python в рерпозитории OpenWRT до версии 2.7.3rc2 необходима переустановка всех пакетов с модулями python.
Да, удалил питона полностью с зависимостями(--force-reinstall не помогал), установил снова и заработало, спасибо.

ryzhov_al, еще вопрос по работе скрипта uploadDropboxScript.py: как загружать файлы не в корень, а в определенную папку?

ryzhov_al
06-04-2012, 16:06
ryzhov_al, еще вопрос по работе скрипта uploadDropboxScript.py: как загружать файлы не в корень, а в определенную папку?Достаточно просто, в Tutorial'е всё расписано (https://www.dropbox.com/developers/start/files#python) с примерами. Только нужны базовые знания по Python.^)

Скрипт uploadDropboxScript.py написан ровно по шагам этого Tutorial'а.

lohmat
06-04-2012, 19:40
Достаточно просто, в Tutorial'е всё расписано (https://www.dropbox.com/developers/start/files#python) с примерами. Только нужны базовые знания по Python.^)


Базовых знаний python-а нету :( Но, немного погуглив, доработал Ваш скрипт(делал по аналогии):

#!/opt/bin/python
import cmd
import locale
import os
import pprint
import shlex
import sys
import time

from dropbox import client, rest, session

APP_KEY = 'xxx'
APP_SECRET = 'yyy'
ACCESS_TYPE = 'dropbox'
TOKEN_FILE = "/opt/var/token_store_dropbox.txt"



class StoredSession(session.DropboxSession):
"""a wrapper around DropboxSession that stores a token to a file on disk"""

def __init__(self, consumer_key, consumer_secret, access_type,tokenFile, locale=None):
self.tokenFile = tokenFile
super(StoredSession,self).__init__(consumer_key, consumer_secret, access_type, locale);


def load_creds(self):
try:
stored_creds = open(self.tokenFile).read()
self.set_token(*stored_creds.split('|'))
return True
except IOError:
return False

def write_creds(self, token):
f = open(self.tokenFile, 'w+')
f.write("|".join([token.key, token.secret]))
f.close()

def delete_creds(self):
os.unlink(self.tokenFile)

def link(self):
request_token = self.obtain_request_token()
url = self.build_authorize_url(request_token)
print "url:", url
print "Please authorize in the browser. After you're done, press enter."
raw_input()

self.obtain_access_token(request_token)
self.write_creds(self.token)

def unlink(self):
self.delete_creds()
session.DropboxSession.unlink(self)


def main():
if APP_KEY == '' or APP_SECRET == '':
exit("You need to set a APP_KEY and APP_SECRET!")

sess = StoredSession(APP_KEY, APP_SECRET, access_type=ACCESS_TYPE, tokenFile=TOKEN_FILE)

#check command line arguments
nextIsInput = False
nextIsDir = False
from_file_path = None
dir_name = None
for arg in sys.argv:
if arg == "-s":
#setup mode
sess.link()
exit("script is now ready to go")
break
elif arg == "-p":
nextIsDir = True
elif nextIsDir:
dir_name = arg
nextIsDir = False
elif arg == "-f":
#next one is the input file
nextIsInput = True
elif nextIsInput:
from_file_path = arg
nextIsInput = False

if not from_file_path:
exit("no arguments given")

api_client = client.DropboxClient(sess)
if not sess.load_creds():
exit("You need to run this script in setup mode (-s option) before you can use it")



from_file_path.strip()
from_file = open(os.path.expanduser(from_file_path))
from_file_parts = from_file.name.split("/")
if not dir_name:
api_client.put_file("/" + from_file_parts[len(from_file_parts)-1], from_file)
else:
dir_name = dir_name.strip()
api_client.put_file("/" + dir_name +"/" + from_file_parts[len(from_file_parts)-1], from_file)

if __name__ == '__main__':
main()

Зеленым отмечены мои вставки. Теперь ключом -p задается директория в dropbox, например:
uploadDropboxScriptF.py -f file -p dir
Если директории dir нет, то она создается.
Вроде, работает. =)

ryzhov_al
13-04-2012, 14:02
С сегодняшнего дня в новом репозитории доступны пакеты davfs2 (http://savannah.nongnu.org/projects/davfs2) и wdfs (http://noedler.de/projekte/wdfs/) c аналогичным функционалом: они позволяют смонтировать на роутере сетевой ресурс WebDAV (http://ru.wikipedia.org/wiki/Webdav).

Например, для того чтобы облачное хранилище Яндекс.Диск появилось на роутере как локальный диск всего лишь необходимо (http://help.yandex.ru/disk/?id=1124655) набрать:

$ opkg install davfs2
$ mkdir /tmp/yandex_disk
$ mount -t davfs https://webdav.yandex.ru /tmp/yandex_disk
После чего Яндекс.Диск будет вам доступен как локальная папка. А дальше всё ограничено лишь вашей фантазией, например, можно организовать:


забор роутером *.torrent-файлов и выкладывание скаченного контента в Яндекс.Диск,
синхронизацию облаков Яндекс.Диск и Dropbox,
бэкап файлов на Я.Диск, благо размер пересылаемых файлов ограничен лишь объёмом, выделенным вам на Яндекс.Диске,
устраивание из Я.Диска SAMBA-шары для совместной командной работы,
устраивание из Я.Диска папки с медиаконтентом для плеера. Например, будете удалённо подкладывать новые скачанные мультики своему чаду, находясь на работе^)
you name it.
Здесь (http://forum.zyxmon.org/post6747.html#p6747) приведён пример того, как обойти запрос на принятие серверного сертификата для автоматизации монтирования.

Если у вас пока нет приглашения (http://disk.yandex.ru/) на тестирование Яндекс.Диска, то можно попробовать работу приложений с другими облаками, имеющими интерфейс WebDAV. Мне, например, удалось подключиться к Box.com. Хоть они и пишут (https://support.box.com/entries/20359428) что WebDAV у них доступен только с iOS, но файлы их облака читаются нормально.
Upd. А вот и статья на Хабре (http://habrahabr.ru/post/143821/#habracut) про использование box.com с помощью davfs2.

wdfs - легковесная утилита, состоящая из одного бинарника. В работе она по минимуму использует спецификацию WebDAV. С одной стороны, это позволяет общаться с любыми WedDAV-серверами, даже сильно капризными, как модуль WebDAV в lighttpd, не боясь вызвать ошибок о несуществующих расширениях стандарта, но с другой стороны набор её фич ограничен. Например, AFAIK, она не возвращает объём свободного места на подключенном хранилище.

davfs2 - более развесистая и тюнингуемая, с конфигурационными файлами и пр. Разработка wdfs остановилась в 2007-м году, а davfs2 развивается до сих пор. В репозитории версия от «18» марта 2012г.

Обе утилиты требуют для работы модуль fuse, соответствующий версии вашей прошивки.


Проверил работу davfs2 со следующими облачными хранилищами:


Сервис
Халявное место
Пример монтирования на роутере


Яндекс.Диск (http://disk.yandex.ru/)
10Гб
$ mount -t davfs https://webdav.yandex.ru /tmp/yandex_disk


4shared.com (http://www.4shared.com)
15Гб
$ mount -t davfs https://webdav.4shared.com/ /tmp/4shared


Box.com (http://www.box.com/)
50Гб (промо (https://support.box.com/entries/20768867-box-50-gb-promotion-faqs))
$ mount -t davfs https://www.box.com/dav /tmp/box.com


Google Drive (http://drive.google.com/)
5Гб
Только через сторонний сервис, на примере (http://wl500g.info/showthread.php?24669-DropBox-Client-%E4%EB%FF-%F0%EE%F3%F2%E5%F0%E0-Asus&p=250707#post250707) DAV-Pocket:
$ mount -t davfs https://dav-pocket.appspot.com/docso /tmp/gdrive/

MercuryV
13-04-2012, 21:38
ryzhov_al, спасибо за davfs2
работает как должно, но хочу поделиться некоторыми наблюдениями насчет

устраивание из Я.Диска SAMBA-шары для совместной командной работы
тщательно я еще не тестировал, но есть признаки проблем
1) обращение через SMB-шару к точке монтирования davfs может внезапно приводить к запросу содержимого файла (проводник или Total Commander, к примеру, решат показать превью файлов или иконки отобразить)
2) закачка тяжелого файла в таких условиях и отдача его одновременно по самбе уже сильно напрягает рутер
3) davfs до кучи большой файл начинает кешировать (сейчас всё применительно к конфигу по-умолчанию). опять-таки пошла запись на диск.
4) кэш по-умолчанию лежит в /opt/var/cache/ - если /opt на флешке, может банально не хватить емкости.

возможно я попусту паникую, но пока буду осторожно пробовать подобные сценарии использования.

ryzhov_al
20-04-2012, 14:02
ryzhov_al, спасибо за davfs2
работает как должно, но хочу поделиться некоторыми наблюдениями насчет

устраивание из Я.Диска SAMBA-шары для совместной командной работытщательно я еще не тестировал, но есть признаки проблем
Это уже не актуально. В Windows XP и выше Яндекс.Диск можно смонтировать как сетевую шару средствами ОС:
http://cards2.yandex.net/hlp-get/6001/png/win-podkluchit-setevoy-disk.png
Правда замеры скорости работы показывают плачевные 0,6Мб/c.

PS Оказывается в Википедии есть страничка (http://en.wikipedia.org/wiki/Comparison_of_online_backup_services) с характеристиками облачных хранилищ, можно посмотреть там какие из них работают через WebDAV.

ryzhov_al
26-04-2012, 07:42
Коллеги, есть информация, что MS SkyDrive работает через WebDAV. У меня ресурсы Microsoft на роутере занесены в чёрный список, поэтому проверить прошу вас.

1) Перейдите к SkyDrive (https://skydrive.live.com/) и откройте в облачном хранилище любую папку, например, «Документы». URL в строке браузера будет иметь вид:

https://skydrive.live.com/#cid=xxxxxxxxxxxxxxxx&id=yyyyyyyyyyyyyyy!zzz
где xxxxxxxxxxxxxxxx - ваш персональный cid. Он нам понадобится на следующем шаге.

2) В роутере смонтируйте смонтируйте SkyDrive как WebDAV ресурс:

$ mkdir /tmp/skydrive
$ mount -t davfs https://docs.live.com/xxxxxxxxxxxxxxxx /tmp/skydrive
и после приглашения введите свои учётные данные Windows Live ID, например vasya@hotmail.com, P@ssw0rd.


ЗЫ Неплохую сводную табличку по возможностям популярных облачных хранилищ для простых смертных можно посмотреть здесь (http://lenta.ru/articles/2012/04/25/cloudisk/).

MercuryV
26-04-2012, 08:04
Коллеги, есть информация, что MS SkyDrive работает через WebDAV
AFAIK, информация устарела. Когда-то ранее, факт, описанный способ работал. Последние полгода уже нет.
Специально попробовал еще раз сейчас. После логина наблюдаем:

mount.davfs: connection timed out two times;
trying one last time
mount.davfs: server temporarily unreachable;
mounting anyway

ryzhov_al
26-04-2012, 08:12
Специально попробовал еще раз сейчас. После логина наблюдаем:Да, получил аналогичный результат, но списал на то, что у меня windows.com и microsoft.com в чёрном списке.

Значит, не работает, отбой.

Интересно, а как сетевую папку (http://habrahabr.ru/post/122457/) SkyDrive тоже больше не смонтировать?
Если так, то работать со SkyDrive на роутере можно только POST-запросами (http://dev.net.ua/blogs/shatokhin/archive/2010/01/15/9224.aspx), но мне это кажется бесперспективным.

MercuryV
26-04-2012, 08:22
Возможно некоторые особенности работы со Skydrive и MS Sharepoint учтут разработчики davfs
В багтрекере есть тикеты уже. тыц (http://savannah.nongnu.org/support/?107402) тыц (https://savannah.nongnu.org/support/index.php?107453)

ryzhov_al
27-04-2012, 07:26
Возможно некоторые особенности работы со Skydrive и MS Sharepoint учтут разработчики davfs.Какие всё-таки жмоты в Microsoft! Их облачное хранилище можно использовать только для хранения документов MS Office. Путь горят в аду.

Сегодня получил Google Disk, но там собственный API, а клиентов в сырцах нет. Ждём пока чей-нить сумрачный гений сделает open source клиент.

В итоге, по открытости среди облачных хранилищ Яндекс трижды рулит.

lohmat
06-05-2012, 13:07
Небольшой оффтоп: может сделаем другую, или переименуем эту тему на вариант что-то типа: "Подключение облачного диска (DropBox, Яндекс.Диск, webdav и т.д.)"

ryzhov_al
06-05-2012, 13:43
Небольшой оффтоп: может сделаем другую, или переименуем эту тему на вариант что-то типа: "Подключение облачного диска (DropBox, Яндекс.Диск, webdav и т.д.)"
Тогда уже "Подключение облачных хранилищ (DropBox, Яндекс.Диск, Box.com и пр.)"

MercuryV
06-05-2012, 16:45
Небольшой оффтоп: может сделаем другую, или переименуем эту тему на вариант что-то типа: "Подключение облачного диска (DropBox, Яндекс.Диск, webdav и т.д.)"


Тогда уже "Подключение облачных хранилищ (DropBox, Яндекс.Диск, Box.com и пр.)"

Имхо, стоит выделить в отдельную тему "Подключение Яндекс.Диск, Box.com и др. webdav ресурсов". Так как всё это работает через davfs в отличие от Dropbox

ryzhov_al
19-05-2012, 07:06
С сегодняшнего дня в новом репозитории доступны пакеты davfs2 (http://savannah.nongnu.org/projects/davfs2) и wdfs (http://noedler.de/projekte/wdfs/) c аналогичным функционалом: они позволяют смонтировать на роутере сетевой ресурс WebDAV (http://ru.wikipedia.org/wiki/Webdav).Коллеги, davfs2 в текущем состоянии в Яндекс.Диск ничего не записывает, несмотря на отсутствие каких-либо сообщений об ошибках. Чтение проходит нормально, а записи в Яндекс.Диск нет вовсе. Ошибку раскопал ув.тов.Zyxmon.

ЗЫ С wdfs таких проблем нет, с Яндекс.Диском он работает как надо.

Zyxmon
19-05-2012, 07:23
Ошибку раскопал ув.тов.Zyxmon.

Следует пересобрать с указанным ниже изменением и проверить запись
http://forum.zyxmon.org/post6768.html#p6768

ryzhov_al
19-05-2012, 10:11
Следует пересобрать с указанным ниже изменением и проверить запись
http://forum.zyxmon.org/post6768.html#p6768
Т.е. этот патч (http://lists.manyfish.co.uk/pipermail/neon/2010-March/001170.html) пришлось откатить?

Zyxmon
19-05-2012, 10:45
Т.е. этот патч (http://lists.manyfish.co.uk/pipermail/neon/2010-March/001170.html) пришлось откатить?
Нет! Проблема в стыковке LFS между neon и davfs. Нужно просто добавить флаги

TARGET_CPPFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
при сборке davfs.

ryzhov_al
19-05-2012, 11:55
Поправил, загрузка файлов на Яндекс.Диск заработала! Обновил пакет в репозитории.

У меня была засада в том, что я разделял флаги компилятора переносом строки. Т.е. конструкция

TARGET_CPPFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
работает, а конструкция

TARGET_CPPFLAGS += \
-D_LARGEFILE64_SOURCE \
-D_FILE_OFFSET_BITS=64 \
-D_GNU_SOURCE
- нет.

Андрей, спасибо.


И ещё. Заметил, что в момент загрузки больших файлов процесс davfs2 выходит в топ, отъедая 99% CPU. При постоянном использовании есть смысл осаждать его via cpulimit.

Zyxmon
19-05-2012, 12:31
Патч с xattr - это моя специфика (древняя uclibc). В Entware он не нужен.

ryzhov_al
19-05-2012, 14:28
Патч с xattr - это моя специфика (древняя uclibc). В Entware он не нужен.Ок.
А с чем связан перенос (http://zyxel-keenetic-packages.googlecode.com/svn/trunk/package/built/davfs2/Makefile) libopenssl из зависимостей (DEPENDS:=...) в число «необходимостей» для сборки (PKG_BUILD_DEPENDS:=...)? Ведь итоговые бинарники зависят от libssl:

$ ldd /opt/sbin/mount.davfs | grep ssl
libssl.so.1.0.0 => /opt/lib/libssl.so.1.0.0 (0x2acde000)

Zyxmon
19-05-2012, 14:44
А с чем связан перенос (http://zyxel-keenetic-packages.googlecode.com/svn/trunk/package/built/davfs2/Makefile) libopenssl из зависимостей (DEPENDS:=...) в число «необходимостей» для сборки (PKG_BUILD_DEPENDS:=...)?
Из зависимостей выкинуты библиотеки, входящие в заводскую прошивку.

ryzhov_al
20-05-2012, 15:52
Составил в посте про WebDAV (http://wl500g.info/showthread.php?24669-DropBox-Client-%E4%EB%FF-%F0%EE%F3%F2%E5%F0%E0-Asus&p=249071#post249071) небольшую табличку с перечнем проверенных облачных хранилищ. Проверялись три пункта: возможность скачивания файлов из облака, возможность закачки в облако нескольких файлов по ~20Мб каждый, и сверка контрольных сумм MD5 файлов, скачанных обратно через web-интерфейс с первоисточниками. На мой взгляд, самый шустрый сервис - box.com, загрузка файлов практически мгновенная.

Плавно меняем тему:)
Есть возможность смонтировать на роутере Google Drive (http://drive.google.com/) через сторонний сервис DAV-pocket (http://dav-pocket.appspot.com/). Для этого необходимо:


придумать (https://dav-pocket.appspot.com/signup) себе логин и пароль (подтверждения регистрации не требуется),
пройти по сгенерированной ссылке "Authorize DAV-pocket service" для того, чтобы сервис имел доступ к Google Drive (via OAuth),
смонтировать на роутере Google Drive:


$ mount -t davfs https://dav-pocket.appspot.com/docso /tmp/gdrive/
Google Drive предлагает 5Гб места без абонентской платы. Давать ли доступ стороннему сервису - решать вам. В аккаунте Google'а всегда можно удалить сервис из перечня авторизованных (https://www.google.com/accounts/b/0/IssuedAuthSubTokens?hl=ru).

CattheBlack
21-05-2012, 09:03
Здравствуйте.

Решил попробовать поставить davfs2 на NAS QNAP TS-419 PII. На нем поставлен ipkg, но там нет davfs2. Скачал из репозитория davfs2_1.4.6-18032012-2_entware.ipk, подскажите, можно ли его поставить напрямую, если стоит только ipkg? Как выяснить зависимости, которые ему надо? Будет ли работать? Если нет, то можно ли что-либо доставить, чтобы таки заработало?

ryzhov_al
21-05-2012, 10:27
Будет ли работать?К сожалению, работать не будет.

Если нет, то можно ли что-либо доставить, чтобы таки заработало?Необходимо доставить на ПК среду кросс-компиляции, соответствующую вашей прошивке и перекомпилировать davfs2 для вашего устройства. Кроме того, необходимо собрать модуль fuse.ko под используемое у вас ядро linux.

Поинтересуйтесь на профильном для вашего устройства форуме, здесь вам вряд ли помогут.

Zyxmon
21-05-2012, 10:34
.....чтобы таки заработало?
В гугле не забанили? http://forum.qnap.com/viewtopic.php?p=245804

CattheBlack
21-05-2012, 20:35
Спасибо большое! В гугле не забанили, но запрос я писал только на русском, глупость солидная. Буду теперь на инглише дублировать, благодарю за науку.

На профильном русском форуме либо не знают, либо молчат. На английском с наскока не нашел. Теперь буду копать глубже.

ryzhov_al
22-05-2012, 05:44
На профильном русском форуме либо не знают, либо молчат. На английском с наскока не нашел. Теперь буду копать глубже.Отмечу не без удовольствия, что в вопросе использования облачных хранилищ DropBox/WebDAV на роутере наше сообщество, пожалуй, в авангарде.

Если на форуме QNAP есть коллеги, готовые собрать пакет для вас, то пусть свободно используют наши (http://wl500g-repo.googlecode.com/svn/feeds/rtndev/davfs2/) наработки (http://zyxel-keenetic-packages.googlecode.com/svn/trunk/package/built/davfs2/).

CattheBlack
24-05-2012, 05:42
Здравствуйте!

Снова я на непрофильном форуме. Причина - здешние гуру самые адекватные и они отвечают на вопросы!

Подскажите, как выяснить, что и куда прописывается при make install без выполнения самого make install? Или как прописать файловую систему davfs?

Выкачал всё, собрал, вроде даже получилось, но после перезагрузки в ответ на попытку монтирования говорит: unknown filesystem type 'davfs'.
Связано это с тем, что при ребуте /etc в устройстве восстанавливается на дефолтный, далее все изменения вносятся уже файлом автозапуска, он же запускает всё из init.d. А в автозапуск не внесены изменения, сделанные при установке davfs.

Я понимаю, что это непрофильная тема, простите уж! В линуксе я, мягко говоря, не силён, а помощи больше ждать неоткуда.

CattheBlack
24-05-2012, 07:27
Решил попробовать wdfs, он только бинарник. Собрал fuse, wdfs. при попытке монтирования

wdfs https://webdav.yandex.ru /share/MD0_DATA/YandexDrive -o username=логин -o password=пароль -o accept_sslcert

выдает
/bin/mount: unrecognized option `--no-canonicalize'

что я опять накосячил?

UPD: Надо util-linux 2.18 и старше. Засада, в ipkg только 2.12. Блииин... Поискать более старый fuse?

UPD2: Уррааа!!! wdfs заработала с fuse 2.8.5!!!! Но если кто поможет понять, что делать с davfs, буду очень благодарен :)

skuwakin
16-07-2012, 17:27
Доброго времени суток. А нет ли случайно способа, который бы позволил юзать яндекс диск на не 443 порту... Дело в том, что моя любимая zebedee сидит тоже сидит на 443 порту и изменить его я не могу по многим причинам. Может пустить webdav через прокси (сорри за возможную глупость).

MercuryV
16-07-2012, 18:03
юзать яндекс диск на не 443 порту... Дело в том, что моя любимая zebedee сидит тоже сидит на 443 порту
каким образом обращение к 443 порту сервера яндекса может мешать любому собственному сервису слушать 443 порт на роутере?

skuwakin
16-07-2012, 18:31
каким образом обращение к 443 порту сервера яндекса может мешать любому собственному сервису слушать 443 порт на роутере?

вопрос, конечно, интересный... но я убил уйму времеми пока допер, почему перестал работать мой туннель на zebedee...
Как только закомментил монтирование диска яндекса - все заработало как прежде. Посему и спросил...

"Чудеса", однако... Счас смонтировал - все работает, и зебедя тоже... Нифига не понимаю... бум смотреть дальше...

TReX
25-07-2012, 14:01
Извините что вмешиваюсь в ваш спор со своим вопросом, но: меня на 155 есть веб-морда для IACloud, но сколько там не включал СмартСинк/АИКлоуд - после сохранения все возвращается в первоначальный вид. Плюс ко всему приложения в гугл плей нет. Но у вас все это работает, получается?

А как сделать так что б работало?

При установке с полным сбросом все работает, плюс я использую не Облако от Асус, а ЯндексДиск и 4шаред, у них лимиты дискового пространства больше жалких Асусовских 2Гб. На телефоне можно использовать любой софт поддерживающий WebDav, тут Гугл в помощь, что выбрать зависит от платформы и желаемого функционала )

P.S. Да, для работы требуется подключение к DynDNS, и причем hurricane electric не подходит по понятным причинам )

ryzhov_al
28-08-2012, 12:45
Среди дайждеста 100 Free Online Backup Services (http://www.free-online-backup-services.com/features/webdav.html) 12 сервисов поддерживают WebDAV, и, соответственно, пригодны для подключения прямо на роутере.



Free Online Backup Provider
Free Storage


4shared (http://www.4shared.com/premium.jsp?ref=footer)
10 GB


Box (http://www.box.net/pricing)
5 GB


CloudMe (http://www.cloudme.com/en/features/packages)
2 GB


CloudSafe (https://secure.cloudsafe.com/pages/product_pricing.html)
2 GB


DriveHQ (https://www.drivehq.com/help/features/?service=all&from=all)
1 GB


DriveOnWeb (http://www.driveonweb.de/de/driveonweb-easystorage/was-ist-driveonweb-privat) (German language)
1 GB


Elephant Drive (https://www.elephantdrive.com/welcome/lite.aspx)
3 GB


Folio Cloud Primo (http://www.foliocloud.com/compare-editions.html)
5 GB


MyDrive (http://www.mydrive.ch/)
2 GB


Safecopy Backup (http://www.safecopybackup.com/)
3 GB


SMEStorage (http://www.smestorage.com/?p=static&page=features)
5 GB


Strato HiDrive Free (http://www.free-online-backup-services.com/features/hidrive-free.html)
3 GB



Новичок ASUS WebStorage (https://www.asuswebstorage.com/navigate/free/), судя по всему, тоже основан на WebDAV. Правда WebStorage ID формируется на основе информации о железе, а потому идёт лесом:)

skuwakin
09-10-2012, 07:29
Доброго времени суток. А не подскажите, что стряслось с yandex диском? Работало, работало и перестало... Вот консоль монтирования

root@RT-N66U:/tmp/home/root# mount -t davfs https://webdav.yandex.ru /tmp/yandex_disk
mount.davfs: the server certificate is not trusted
issuer: ld, yandex, ru
subject: ITO, Yandex, Moscow, Russia, RU
identity: webdav.yandex.ru
fingerprint: ------------------------------------------------------------(моя правка)
You only should accept this certificate, if you can
verify the fingerprint! The server might be faked
or there might be a man-in-the-middle-attack.
Accept certificate for this session? [y,N] y
mount.davfs: Mounting failed.
Could not authenticate to server: ignored OAuth challenge, ignored Bearer challenge, rejected Basic challenge
mount: mounting https://webdav.yandex.ru on /tmp/yandex_disk failed: No such device
root@RT-N66U:/tmp/home/root#


отбой. Была проблема с рег.данными на яндексе. Причина не понятна.

les86
16-11-2012, 18:09
Здравствуйте. Прошу совета, так как более подходящего топика и не нашел по своему вопросу.
У меня ASUS N56U, с мод. прошивкой от Падавана, в прошивке Entware. Хочу примонтировать яндекс.диск к ФС роутера. FUSE и devfs2.
После манипуляций
$ mkdir /tmp/yandex_disk
$ mount -t davfs https://webdav.yandex.ru /tmp/yandex_disk
Получаю -
/opt/home/admin # mount -t davfs https://webdav.yandex.ru /tmp/yandex_disk
mount: mounting https://webdav.yandex.ru on /tmp/yandex_disk failed: No such device

MercuryV
16-11-2012, 19:28
mount: mounting https://webdav.yandex.ru on /tmp/yandex_disk failed: No such device
Для работы davfs необходим модуль ядра fuse
Проверьте, загружен ли он

$ lsmod
если нет, то

$ insmod fuse
или
$ modprobe fuse
а уже потом монтируйте.

P.S. Топик подходящий для вопроса. Добро пожаловать на форум

les86
17-11-2012, 06:28
Для работы davfs необходим модуль ядра fuse
$ modprobe fuse[/CODE]
а уже потом монтируйте.
fuse есть, так указанно на форуме ixbt Спасибо вам что откликнулись.
Проделал выше указанные операции, но эффекта не изменился:


/opt/home/admin # modprobe fuse
/opt/home/admin # lsmod
Module Size Used by
fuse 62144 0
ufsd 320272 1 [permanent]
ext2 57184 1
ext3 120672 1
jbd 43808 1 ext3
mbcache 4208 2 ext2,ext3
hw_nat 41120 0
nf_nat_ftp 1152 0
nf_conntrack_ftp 5088 1 nf_nat_ftp
usblp 9392 0
sr_mod 12304 0
cdrom 33280 1 sr_mod
rt3090_ap 562016 1
usb_storage 30704 3
rt2860v2_ap 589296 1
ohci_hcd 15552 0
ehci_hcd 34144 0
/opt/home/admin # mount -t davfs https://webdav.yandex.ru /tmp/yandex_disk
mount: mounting https://webdav.yandex.ru on /tmp/yandex_disk failed: No such device
/opt/home/admin # ping webdav.yandex.ru
PING webdav.yandex.ru (213.180.193.53): 56 data bytes
64 bytes from 213.180.193.53: seq=0 ttl=57 time=9.160 ms
64 bytes from 213.180.193.53: seq=1 ttl=57 time=9.125 ms
--- webdav.yandex.ru ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 9.125/9.142/9.160 ms

MercuryV
17-11-2012, 08:53
les86, проверьте на своем N56 пару простых вещей:
1) davfs2 установлен

$ opkg files davfs2
Package davfs2 (1.4.7-2) is installed on root and has the following files:
/opt/sbin/umount.davfs
/opt/sbin/mount.davfs
/opt/etc/davfs2/davfs2.conf
/opt/etc/davfs2/secrets
2) каталог /opt/sbin есть в $PATH

$ echo $PATH
/opt/sbin:/opt/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin

lohmat
17-11-2012, 20:45
Прошу помощи, не могу разобраться с wdfs: подключаю Яндекс.Диск: небольшие файлы копируются нормально, но вот образ диска в 1 Гб не копируется. Пробовал через cp в консоли и через mc. Копируется только ~60 Мб.
Какой параметр нужно добавить или такие большие файлы только через davfs2 копировать можно?

P.S.
В помощи к диску указано:

На Яндекс.Диск можно загрузить файл размером до 10 гигабайт. Чтобы загружать большие файлы, рекомендуем пользоваться программой Яндекс.Диска или доступом по протоколу WebDAV — браузеры могут не справиться с файлами, чей размер превышает 2 ГБ.
Места на диске навалом...

MercuryV
17-11-2012, 22:00
Прошу помощи, не могу разобраться с wdfs: подключаю Яндекс.Диск: небольшие файлы копируются нормально, но вот образ диска в 1 Гб не копируется. Пробовал через cp в консоли и через mc. Копируется только ~60 Мб.
Какой параметр нужно добавить или такие большие файлы только через davfs2 копировать можно?
Могу предположить что маленький, но гордый wdfs пытается пропихнуть файл одним PUT запросом, ему не хватает оперативной памяти и он обламывается. На моем тестовом wl500gp сфэйлил на ~13 Мб. Насчет параметров не подскажу, не пользуюсь.
dafvs2 может копировать в обе стороны большие файлы.

lohmat
18-11-2012, 05:21
Могу предположить что маленький, но гордый wdfs пытается пропихнуть файл одним PUT запросом, ему не хватает оперативной памяти и он обламывается...
Я тоже подумал, что ограничение - размер ОЗУ, может есть какие опции что бы его обойти...

Насчет параметров не подскажу, не пользуюсь.
dafvs2 может копировать в обе стороны большие файлы.
Буду пробовать его...

les86
18-11-2012, 08:56
les86, проверьте на своем N56 пару простых вещей:
1) davfs2 установлен

Это точно есть, в инете даже ничего найти не могу по вопросу


/opt/home/admin # clear
/opt/home/admin # opkg files davfs2
Package davfs2 (1.4.7-2) is installed on root and has the following files:
/opt/sbin/umount.davfs
/opt/sbin/mount.davfs
/opt/etc/davfs2/davfs2.conf
/opt/etc/davfs2/secrets
/opt/home/admin # echo $PATH
/opt/usr/sbin:/opt/sbin:/opt/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin
/opt/home/admin #

ryzhov_al
18-11-2012, 11:21
Это точно есть, в инете даже ничего найти не могу по вопросуНадо бы начать поиск не с интернета, а с собственного лога роутера. Если в syslog'е есть строчки
Nov 18 15:11:23 syslog: authentication failure:
Nov 18 15:11:23 syslog: Yandex.Disk
то дело исключительно в неправильном указании учётных данных. Логин для Яндекс.Диска в davfs2 должен звучать как e-mail без указания домена. Т.е. если e-mail vasya@yandex.ru, то в davfs2 указываете username: vasya, пароль — почтовый.

Eximido
19-11-2012, 14:37
dafvs2 может копировать в обе стороны большие файлы.
Причем он это делает довольно специфично:
Если, например, возжелать скопировать 1ГБ-файл с флешки, то сначала davfs2 этот файл откопирует в директорию кэша (на той же самой флешке!), а только потом оттуда начнет заливать его на удаленный сервер. В результате лишняя операция копирования, которая тратит немало и реального, и процессорного времени впустую, и обеспечивает ненужный износ флешки.
Нет, я прекрасно понимаю, ради чего это было сделано, но в наших ресурсоограниченных роутерных условиях было бы просто прекрасно каким-то образом выпилить нафиг из исходников davfs2 весь этот функционал перекэширования.

les86
19-11-2012, 14:37
Надо бы начать поиск не с интернета, а с собственного лога роутера..

Тык еcли вручную то он вообще ничего ведь не спрашивает, слету ошибка. Попробовал mount.devfs - сработало, примонтировался. А от при запуске скрипта выдает (после уже редактирования)

#!/bin/sh

MOUNT="/media/DISK_A1/system"

export PATH=$MOUNT/bin:$MOUNT/sbin:$MOUNT/usr/bin:$MOUNT/usr/sbin:/sbin:/usr/sbin:/bin:/usr/bin
export LD_LIBRARY_PATH=$MOUNT/lib:$MOUNT/usr/lib:/lib:/usr/lib

start() {
mount.davfs https://webdav.yandex.ru /media/AiDisk_a1/yandex_disk -o rw < /opt/etc/davfs2/dav.inp
}

stop() {
umount /media/AiDisk_a1/yandex_disk
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo "Usage: $0 {start|stop|restart}"
;;
esac

Выдает



/opt/home/admin # /opt/etc/init.d/S12davfs start
/opt/etc/init.d/S12davfs: line 30: mount.davfs: not found
/opt/home/admin #

Eximido
19-11-2012, 14:43
Выдает


/opt/home/admin # /opt/etc/init.d/S12davfs start
/opt/etc/init.d/S12davfs: line 30: mount.davfs: not found
/opt/home/admin #

Дык прямым текстом же написано, что оно не может найти где находится mount.davfs. Как вариант, укажите в скрипте вместо вызова mount.davfs полный путь до бинарника - /opt/sbin/umount.davfs. Либо допишите в PATH путь /opt/sbin, судя по увиденному у вас его там нет.

les86
19-11-2012, 18:42
Как вариант, укажите в скрипте вместо вызова mount.davfs полный путь до бинарника - /opt/sbin/umount.davfs. Либо допишите в PATH путь /opt/sbin, судя по увиденному у вас его там нет.
Да вы были правы, не мог найти бинарник. Хотя до этого через эту команду подключал из терминала - все отработало. Добавил в скрипт нужный путь окружение. Теперь получил вот что

1) При попытки подключить через "mount.devfs что куда" получил в ответ

/opt/home/admin # mount.davfs http://webdav.yandex.ru /media/AiDisk_a1/yandex_disk
mount.davfs: Mounting failed.
301 Moved Permanently

2) Через скрипт

/opt/home/admin # /opt/etc/init.d/S12davfs start
Segmentation fault
/opt/home/admin #


Что ни шаг, везде преграды - и все из-за невежества.

Eximido
19-11-2012, 19:03
1) При попытки подключить через "mount.devfs что куда" получил в ответ
Это потому, что вы написали в адресе http://webdav.yandex.ru, а надо https://webdav.yandex.ru.


2) Через скрипт
А насчет этого однозначно не скажу. Может, неверные параметры LD_LIBRARY_PATH, они там в скрипте вообще нужны? Хотя на самом деле я не знаю тонкости здешних прошивок, как тут у вас вообще организовано. Я просто у себя на OpenWrt скриптом монтирую яндекс так:

yes | mount.davfs https://webdav.yandex.ru /mnt/davfs2/yandex.ru > /dev/null
И никаких дополнительных параметров, все вроде нормально взлетает и без них. Ну, это предполагается, что нужные реквизиты уже забиты в davfs2.conf, а для подтверждения ругани на сертификат используется утилита "yes". :)

les86
19-11-2012, 19:34
Это потому, что вы написали в адресе http://webdav.yandex.ru, а надо https://webdav.yandex.ru.

Вы правы, под вечер совсем расслабился


/opt/home/admin # mount.davfs https://webdav.yandex.ru /media/AiDisk_a1/yandex_d
isk
mount.davfs: the server certificate is not trusted
issuer: ld, yandex, ru
subject: ITO, Yandex, Moscow, Russia, RU
identity: webdav.yandex.ru
fingerprint: 32:75:bd:91:e3:70:28:41:6d:e1:37:a1:0b:6b:26:77:93 :7b:11:da
You only should accept this certificate, if you can
verify the fingerprint! The server might be faked
or there might be a man-in-the-middle-attack.
Accept certificate for this session? [y,N] y

Но что делать со скиптом...

MercuryV
23-12-2012, 00:21
Если, например, возжелать скопировать 1ГБ-файл с флешки, то сначала davfs2 этот файл откопирует в директорию кэша (на той же самой флешке!), а только потом оттуда начнет заливать его на удаленный сервер. В результате лишняя операция копирования, которая тратит немало и реального, и процессорного времени впустую, и обеспечивает ненужный износ флешки
Есть вариант заливать/сливать файлы "напрямую" - консольный клиент cadaver. (см. пример использования (http://tt.erinome.net/2012/11/375)). Правда тут проявляется другой недостаток - cadaver интерактивный.
В основной репозиторий пока не добавил, предлагаю для опытов тестовый пакет (http://x.vm0.ru/wl500g-repo/testing/openwrt/cadaver_0.23.3-1_entware.ipk)

Daledreams
12-01-2013, 22:40
dropbox.rest.ErrorResponse: [404] u"Path '/WatchDir' not found"

так и не понял что нужно указать в скрипте для REMOTE_DIR
пытался и Apps/WatchDir указать, та же ошибка

lohmat
28-01-2013, 09:09
В основной репозиторий пока не добавил, предлагаю для опытов тестовый пакет (http://x.vm0.ru/wl500g-repo/testing/openwrt/cadaver_0.23.3-1_entware.ipk)

Да, пакет интересный!
А когда добавите, то существующий нужно будет удалить, а потом из репозитория ставить, или он и так обновляться будет?

MercuryV
28-01-2013, 13:01
Да, пакет интересный!
А когда добавите, то существующий нужно будет удалить, а потом из репозитория ставить, или он и так обновляться будет?
Если ставили непосредственно из ipk, то для верности потом лучше переставить из репозитория.

natural
30-01-2013, 11:29
Итого, пишу для непосвященных и для истории.
Чтобы при запуске роутера монтировался ЯндексДиск надо создать файл S50yadisk в /opt/etc/init.d. С таким содержимым:


#!/bin/sh

MOUNT="/opt/tmp/ya_disk"

export PATH=$MOUNT/bin:$MOUNT/sbin:$MOUNT/usr/bin:$MOUNT/usr/sbin:/sbin:/usr/sbin:/bin:/usr/bin:/opt/sbin

start() {
mount.davfs https://webdav.yandex.ru /opt/tmp/ya_disk -o rw < /opt/etc/davfs2/dav.inp
}

stop() {
umount /opt/tmp/ya_disk
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo "Usage: $0 {start|stop|restart}"
;;
esac


Дать права этому файлу на исполнение.
Не забыть создать файл /opt/etc/davfs2/dav.inp с двумя строчками: имя юзера и пароль.

При запуске в логе должен будет написать типа того:


Jan 30 15:04:02 syslog: the server certificate is not trusted
Jan 30 15:04:02 syslog: issuer: ld, yandex, ru
Jan 30 15:04:02 syslog: subject: ITO, Yandex, Moscow, Russia, RU
Jan 30 15:04:02 syslog: identity: webdav.yandex.ru
Jan 30 15:04:02 syslog: accepted by user


Еще я добавил в post-mount строчку:

rm /opt/var/run/mount.davfs/*.pid

Потому что если с предыдущего запуска диск не был размонтирован, то получим:

Either /opt/tmp/ya_disk is used by another process,
or another mount process ended irregular


Есть альтернативный вариант, упомянутый Eximido. Было бы здорово если бы он с нами поделился, какие реквизиты и чем забивать davfs2.conf :)

Daledreams
02-03-2013, 14:29
admin@RT-N66U:/tmp/mnt/sdb2/asusware/bin# DropboxTorrentsWatch.py
Getting folder TorrentDir to /mnt/sdb2/Torrent/Watch
Traceback (most recent call last):
File "/opt/bin/DropboxTorrentsWatch.py", line 99, in <module>
main()
File "/opt/bin/DropboxTorrentsWatch.py", line 89, in main
if not os.path.exists(new_path):
File "/opt/lib/python2.7/genericpath.py", line 18, in exists
os.stat(path)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 43-44: ordinal not in range(128)

ryzhov_al
04-03-2013, 06:19
На что ругается? На кириллицу в имени торрент-файла.

ryzhov_al
19-04-2013, 16:26
#!/bin/bash

#DBOX="/dropbox_uploader.sh -f /.dropbox_uploader"
DBOX=/dropbox_uploader.sh

$DBOX list Torrents | grep "^ \[F\] " | sed "s|^ \[F\] ||g" |
while read item
do
if [ "$item" == "" ]
then
exit 0
else
$DBOX download "/Torrents/$item" "/var/lib/transmission-daemon/info/watch-dir/$item"
chmod 666 "/var/lib/transmission-daemon/info/watch-dir/$item"
$DBOX delete "/Torrents/$item"
fi
done

ryzhov_al
19-04-2013, 17:20
Отдельной темы у нас по этому вопросу нет, поэтому напишу здесь. Предлагаю ещё один вариант для реализации того же механизма (http://wl500g.info/showthread.php?24669-%CC%EE%ED%F2%E8%F0%EE%E2%E0%ED%E8%E5-%EE%E1%EB%E0%F7%ED%EE%E3%EE-%E4%E8%F1%EA%E0-(DropBox-%DF%ED%E4%E5%EA%F1-%C4%E8%F1%EA-Box-com-GoogleDrive)&p=245803#post245803): вы будете бросать torrent-файлы в папку Dropbox'а, а роутер забирать их оттуда и брать в работу. Это решение обходится без python'а и использует Dropbox-Uploader (http://github.com/andreafabrizi/Dropbox-Uploader), написанный на bash'е. Соответствующий пакет MercuryV уже добавил в репозиторий:

opkg install cron curl dropbox-uploader transmission-web
Определите в /opt/etc/transmission/settings.json папку, куда будет скачиваться torrent-контент и поместите в /opt/etc/cron.5mins исполняемый скрипт следующего содержания:

#!/opt/bin/bash

dropbox_uploader list | grep -iE "^ \[F\] .+\.torrent$" | sed "s|^ \[F\] ||g" | \
while read item
do
dropbox_uploader download "$item" "/opt/etc/transnmission/watchdir/$item"
dropbox_uploader delete "$item"
done
Скрипт будет периодически забирать новые torrent-файлы, появившиеся в папке аккаунта Dropbox, и, в отличие от питоновской версии, не будет пробуксовывать на кириллических именах. Скрипт разборчив, он не будет «засасывать» из папки Dropbox'а никакой мусор, только torrent-файлы. Далее необходимо создать приложение Dropbox, пройдя по этой ссылке (https://www.dropbox.com/developers/apps/create) и выбрав:

App type: Core,
App name: придумайте сами имя для вашего приложения,
Permission type: App folder,
Нажмите кн.«Create app»,
Name of app folder: Torrents,
Нажмите «Update».

Скопируйте App key, App secret, они понадобятся для подтверждения доступа dropbox-uploader'а на следующем шаге. Запустите на роутере dropbox-uploader без каких-либо параметров и введите:

App key — ясно,
App secret — ясно,
Access level [a/f]: a,
…it's ok? [y/n]: y,
Token request. На этом шаге необходимо скопировать предложенный в консоли URL в строку браузера и нажать на появившейся web-страничке кнопку «Можно». Только после этого возвращайтесь к консоли и нажимайте Enter.

Настройка закончена. Перегрузите роутер и попробуйте скрипты в действии. Любой torrent-файл, брошенный в папку Приложении\Torrents Dropbox-аккаунта должен исчезать из неё в течение пяти минут. Это означает, что роутер «принял» торрент в работу.

ConstAntz
20-04-2013, 08:07
...
вы будете бросать torrent-файлы в папку Dropbox'а, а роутер забирать их оттуда и брать в работу.
...
Скрипт будет периодически забирать новые torrent-файлы, появившиеся в папке аккаунта Dropbox...
...
Скрипт разборчив, он не будет «засасывать» из папки Dropbox'а никакой мусор, только torrent-файлы.
...
Любой torrent-файл, брошенный в папку Приложении\Torrents Dropbox-аккаунта должен исчезать из неё в течение пяти минут. Это означает, что роутер «принял» торрент в работу.



На хабре где-то пробегала статья о совместном использовании DropBox и торрент-клиента для автоматизации закачек
...
Так что не исключено, что мы с вами в этом деле будем первые.

т.е. можно использовать DrBx как remoteDL с отложенным сливом на ПК?

ryzhov_al
20-04-2013, 09:51
Насчёт слива на ПК сомневаюсь: в API Dropbox'а всё ещё есть жёсткое ограничение на максимальный размер передаваемого файла ~150МБ.

Папка Dropbox'а предлагается в качестве «окошка обслуживания» торрентов: через него можно взаимодействовать с торрент-клиентом на роутере даже за всякими тройными NAT'ами и серыми IP.
Доводя идею «окна обслуживания» до логического конца, могу предложить скрипт, который будет выкладывать в DropBox-папку «файл-квитанцию», появление которой будет говорить об окончании закачки. Для этого надо в /opt/etc/transmission/settings.json добавить строчки:

"script-torrent-done-enabled": true,
"script-torrent-done-filename": "/opt/usr/sbin/torrent-done.sh",
а в /opt/usr/sbin/torrent-done.sh положить следующее содержимое:

#!/opt/bin/bash

[ -z "$TR_TORRENT_NAME" ] && exit 0

echo "Donwload job done at `date`" > "/tmp/$TR_TORRENT_NAME.txt"
dropbox_uploader upload "/tmp/$TR_TORRENT_NAME.txt"
rm -f "/tmp/$TR_TORRENT_NAME.txt"

Теперь идея «окошка» закончена:

вы просовываете в окошко голову^W^W^W кладёте в папку дропбокса torrent-файл(ы), который(е) хотите скачать,
в течение пяти минут torrent-файл(ы) из папки дропбокса исчезает(ют), что означает начало скачивания,
через некоторое время в той же папке появляется «квитанция» о том, что скачивание завершено.


ЗЫ По результатам беседы написал (http://forums.smallnetbuilder.com/showthread.php?t=10953) для SNB скрипт в полтора десятка строк, который выполняет обе функции: забирает из дропбокса новые торренты и выкладывает на дропбокс репорты.

skuwakin
20-04-2013, 11:47
идея хороша! правда, rtorrent сам умеет отсылать письма по окончании закачки.

ryzhov_al
21-12-2013, 15:59
К облаку mail.ru, предлагающему (cloud.mail.ru/?from=promo) 1ТБ бесплатного места можно подключиться via WebDAV.


https://webdav.cloud.mail.ru/

PS Такой же глюк (http://habrahabr.ru/post/206860/#comment_7125902) при использовании davfs2: читаются файлы нормально, а вот записать в облако ничего невозможно.

Eximido
24-04-2014, 11:32
21-го апреля зарелизился davfs2 версии 1.5.0. (http://savannah.nongnu.org/forum/forum.php?forum_id=7952)

Согласно описанию разработчика, довольно много всего было исправлено и добавлено. Из интересного - новая опция minimize_mem, позволяющая сократить размер зажираемой этим софтом оперативной памяти за счет выгрузки тех метаданных, которые некоторое время не использовались (а в старых версиях они хранятся безгранично долго).

Лично мне удалось собрать новую версию davfs2 под OpenWrt в основном путем выкидывания старых патчей без составления новых. :)
Возможно, не лучшее решение, но пока не было времени детально разбираться - а оно и без них работает.

Рецепт под wrtшную среду сборки: http://fs.erinome.net/openwrt/packages/davfs2


ЗЫ: Ответ из серии "два года спустя". %)


Если, например, возжелать скопировать 1ГБ-файл с флешки, то сначала davfs2 этот файл откопирует в директорию кэша (на той же самой флешке!), а только потом оттуда начнет заливать его на удаленный сервер. В результате лишняя операция копирования, которая тратит немало и реального, и процессорного времени впустую, и обеспечивает ненужный износ флешкиЕсть вариант заливать/сливать файлы "напрямую" - консольный клиент cadaver. (см. пример использования (http://tt.erinome.net/2012/11/375)). Правда тут проявляется другой недостаток - cadaver интерактивный.
Как раз этот самый предлагаемый пример использования я сам и описывал в свое время. )
На днях добавил описание костыльного решения (http://tt.erinome.net/2014/04/668) для обхода интерактивности кадавера.

ryzhov_al
24-04-2014, 12:58
Вот это репорт! Спасибо.

Лично мне удалось собрать новую версию davfs2 под OpenWrt в основном путем выкидывания старых патчей без составления новых. :)
Возможно, не лучшее решение, но пока не было времени детально разбираться - а оно и без них работает.Откуда брали этот патч (http://fs.erinome.net/openwrt/packages/davfs2/patches/040-cache.patch)? В целом с выкидыванием старых патчей согласен, вызывает только сомнение только полезность выкинутого hunk'а:

--- a/src/webdav.c 2012-08-03 16:09:25.000000000 +0400
+++ b/src/webdav.c 2012-08-03 15:32:26.000000000 +0400
@@ -1258,7 +1258,7 @@
char *out = buf;

iconv(conv, NULL, NULL, &out, &outsize);
- if (iconv(conv, &in, &insize, &out, &outsize) >= 0
+ if (iconv(conv, (const char **)&in, &insize, &out, &outsize) >= 0
&& insize == 0 && outsize >= MB_LEN_MAX) {
memset(out, 0, MB_LEN_MAX);
free(*s);

Можете у себя упростить (https://github.com/Entware/rtndev/blob/master/davfs2/Makefile) зависимости пакета.

Обновлённый пакет работоспособен: проверил создание\удаление папок\файлов. Копирование гигабайтных файлов туда-сюда с проверкой контрольной суммы результата. Пакет нормально отрабатывает ситуацию, когда davfs останавливают и запускают снова, в этом случае недосинхренный кэш заканчивает синхронизацию, словно остановки davfs не было.
В процессе работы davfs2 ведёт себя вполне достойно. Много памяти не ест:

admin@RT-N66U:/tmp/home/root# ps -A --sort -rss -o comm,pmem,rss,vsz
COMMAND %MEM RSS VSZ
3proxy 1.5 3776 7284
mc 1.1 2756 6384
mount.davfs 0.8 1976 5376
httpd 0.4 1180 3912
u2ec 0.4 1024 2040
u2ec 0.4 1024 2040
u2ec 0.4 1024 2040

Процессорных ресурсов тоже не много потребляет:

admin@RT-N66U:/tmp/home/root# top
top - 15:24:03 up 18:51, 0 users, load average: 0.27, 0.37, 0.27
Tasks: 67 total, 2 running, 65 sleeping, 0 stopped, 0 zombie
Cpu(s): 15.8%us, 8.3%sy, 0.0%ni, 71.3%id, 0.0%wa, 0.0%hi, 4.6%si, 0.0%st
Mem: 239796k total, 175880k used, 63916k free, 1092k buffers
Swap: 489848k total, 2112k used, 487736k free, 133608k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
24182 nobody 15 0 3784 1016 704 R 15.2 0.4 0:07.06 mount.davfs
24189 admin 16 0 1624 664 500 R 1.0 0.3 0:00.11 top
24196 admin 25 0 1424 396 340 S 0.7 0.2 0:00.02 rrd.sensors.sh
24192 admin 20 0 1428 376 316 S 0.3 0.2 0:00.01 run-parts
24247 admin 25 0 1068 396 324 S 0.3 0.2 0:00.01 df


Опцию minimize_mem я включаю по умолчанию.

Eximido
24-04-2014, 13:08
Откуда брали этот патч (http://fs.erinome.net/openwrt/packages/davfs2/patches/040-cache.patch)?
Сейчас уже трудно сказать, но без него под OpenWrt пакет не собирается в виду отсутствия sys/xattr.h.


Можете у себя упростить (https://github.com/Entware/rtndev/blob/master/davfs2/Makefile) зависимости пакета.
Спасибо, пофиксим.

Хотя не совсем согласен с таким упрощением. Например, без kmod-fuse оно работать не будет - так что выкидывать libfuse кажется некорректным.
Аналогично для libopenssl.

ryzhov_al
24-04-2014, 19:55
Хотя не совсем согласен с таким упрощением. Например, без kmod-fuse оно работать не будет - так что выкидывать libfuse кажется некорректным.
Аналогично для libopenssl.
1) На отсутствие у нас kmod-fuse не смотрите, у нас репозиторий не привязан к ядру,
2) на libfuse пакет больше не завязан, можете проверить сами с помощью ldd,
3) libopenssl подтянется автоматически как суб-зависимость libneon.

skuwakin
26-08-2014, 17:05
доброго времени суток. не подскажите, что в davfs2.conf можно подправить, чтобы убрать вот такие записи в log-e


RT-N66U mark.err syslog: open files exceed max cache size by 5474 MiBytes
увеличение размера кэша ничего не дало. заранее спасибо.

UPD: видимо я по дурости задал слишком большой размер....
'Поставил не намного больше, чем в сообщении, и всё стало хорошо.

ryzhov_al
04-01-2015, 17:24
Добавил утилиту (https://github.com/TurboGit/hubicfuse) для FUSE-монтирования облачного хранилища HubiC. Работает довольно бодро:

/opt/bin/dd if=/dev/zero of=/mnt/hubic/default/nonsense.swp bs=1M count=20
20+0 records in
20+0 records out
20971520 bytes (21 MB) copied, 2.95041 s, 7.1 MB/s
Не нагружая в полку процессор:

top
top - 19:48:33 up 13 days, 23:24, 0 users, load average: 0.00, 0.00, 0.00
Tasks: 69 total, 1 running, 68 sleeping, 0 stopped, 0 zombie
Cpu(s): 2.0%us, 26.2%sy, 0.0%ni, 63.6%id, 0.0%wa, 0.0%hi, 8.3%si, 0.0%st
Mem: 239712k total, 120836k used, 118876k free, 23568k buffers
Swap: 501944k total, 0k used, 501944k free, 60200k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
17202 admin 15 0 12308 2960 1972 S 29.1 1.2 0:01.93 hubicfuse
17213 admin 15 0 1496 632 468 R 1.0 0.3 0:00.10 top
Для использования хранилища необходимо:
1. Зарегистрироваться (https://hubic.com/home/new/?referral=MGTITP). По этой реферальной ссылке первоначальный объём облака будет 30ГБ, без реферала — 25.
2. В разделе Developers (https://hubic.com/home//browser/developers/) создать новое приложение. Данные из полей Redirection domain, Client ID и Secret Client понадобятся на следующем шаге.
3. Установить утилиту, запустить прилагаемый с ней скрипт и ответить на несколько вопросов скрипта.

opkg install hubicfuse
hubic_token -k
В конце скрипт выведет несколько строчек, которые надо будет поместить в конфиг /opt/etc/.hubicfuse. У меня этот файл имеет следующий вид:

cat /opt/etc/.hubicfuse
client_id=api_hubic_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxx
client_secret=yyyyyyyyyyyyyyyyyyyyyyyyyyyyy
refresh_token=zzzzzzzzzzzzzzzzzzzzzzzzzzz
cache_timeout=60
verify_ssl=false
Разумеется, вместо xxx, yyy, zzz у вас будут свои значения, сформированные скриптом на предыдущем шаге.
Всё! Осталось смонтировать хранилище:

insmod fuse
mkdir /tmp/mnt/hubic
hubicfuse /tmp/mnt/hubic
Проверить, что хранилище подключено можно командой mount:

admin@RT-N66U:/tmp/mnt/OPT/tmp# df -h
Filesystem Size Used Avail Use% Mounted on
...
hubicfuse 30G 388K 30G 1% /tmp/mnt/hubic

Rucha
08-01-2015, 17:09
Проделал вышеуказанные манипуляции и получил ошибку Failed to authenticate после выполнения команды hubicfuse.
В чем может быть проблема?

UPD: Fixed. Оказывается при ответах на вопросы скрипта hubic_token надо овечать на вопросы типа "Get account usage (r):" вводя "r" вместо просто Enter.

UPD2: Все загруженные в облако файлы имеют размер не более 8 KB. Как пофиксить?

ryzhov_al
09-01-2015, 05:27
UPD: Fixed. Оказывается при ответах на вопросы скрипта hubic_token надо овечать на вопросы типа "Get account usage (r):" вводя "r" вместо просто Enter.Варианты ответов, предлагаемые скриптом в скобках меня тоже вначале запутали. «r» — right, «w» — wrong.


UPD2: Все загруженные в облако файлы имеют размер не более 8 KB. Как пофиксить?Воспроизвёл. В этот момент скорость копирования падает до минимальных значений, а все файлы в облаке имеют размер 4КБ:

admin@RT-N66U:/tmp/home/root# time cp -r /mnt/BACKUP/2.6.22.19/ /mnt/hubic/default/modules/
cp: can't create symlink '/mnt/hubic/default/modules/2.6.22.19/source': Function not implemented
cp: can't create symlink '/mnt/hubic/default/modules/2.6.22.19/build': Function not implemented
Command exited with non-zero status 1
0.06user 0.38system 4:20.60elapsed 0%CPU (0avgtext+0avgdata 0maxresident)k0inputs+0outputs (0major+0minor)pagefaults 0swaps
admin@RT-N66U:/tmp/home/root# du -hs /mnt/BACKUP/2.6.22.19/
12.4M /mnt/BACKUP/2.6.22.19/
admin@RT-N66U:/tmp/home/root# ls -la /mnt/hubic/default/modules/2.6.22.19/
drwxr-xr-x 2 admin root 0 Jan 9 06:12 .
drwxr-xr-x 2 admin root 0 Jan 9 06:07 ..
drwxr-xr-x 2 admin root 0 Jan 9 06:12 kernel
-rw-rw-rw- 1 admin root 4096 Jan 9 06:16 modules.alias
-rw-rw-rw- 1 admin root 4096 Jan 9 06:16 modules.alias.bin
-rw-rw-rw- 1 admin root 0 Jan 9 06:16 modules.builtin.bin
-rw-rw-rw- 1 admin root 4096 Jan 9 06:12 modules.dep
-rw-rw-rw- 1 admin root 4096 Jan 9 06:16 modules.dep.bin
-rw-rw-rw- 1 admin root 52 Jan 9 06:12 modules.devname
-rw-rw-rw- 1 admin root 131 Jan 9 06:16 modules.softdep
-rw-rw-rw- 1 admin root 4096 Jan 9 06:12 modules.symbols
-rw-rw-rw- 1 admin root 4096 Jan 9 06:12 modules.symbols.bin
Буду выяснять.

Rucha
14-01-2015, 16:45
Буду выяснять.

Как успехи? Шансы есть?

ryzhov_al
14-01-2015, 18:01
Как успехи? Шансы есть?В течение нескольких дней — вряд ли. Я пока этот вопрос забросил в связи с загруженностью.

Rucha
02-05-2015, 09:35
Может кто-то еще может глянуть в чем проблема?

ryzhov_al
02-05-2015, 15:25
Может кто-то еще может глянуть в чем проблема?Автор вроде как исправил (https://github.com/TurboGit/hubicfuse/issues/48), но полагается на чей-то сторонний отчёт. В мае буду обновлять наш фид с пакетами, обновлю и hubicfuse.

chyuliy
03-07-2015, 08:12
Спасибо ребята, яндекс работает (правда больше 1Гб не тестил). А как узнать реальную скорость загрузки/аплоада? Как понимаю сперва в кеш шпарит.

ryzhov_al
22-07-2015, 13:32
Проделал вышеуказанные манипуляции и получил ошибку Failed to authenticate после выполнения команды hubicfuse.Исключил пакет из репозитория, теперь дальше «Failed to authenticate» дело не идёт. По strace видно какие-то таймауты после нескольких обращений к определённым URL, затем возникает указанная ошибка.

xdimik
24-06-2016, 20:13
Доброго времени суток!
Все проделал как написано ниже и столкнулся с проблемой. Дропбокс при выполнении скрипта, файлы в облаке видет, но не цыпляет, пишет:
> No such file or directory: /35279 1.torrent
> Deleting "/35279 1.torrent"... FAILED
> No such file or directory: /18192 [kinozal.tv]id1444678.torrent
> Deleting "/18192 [kinozal.tv]id1444678.torrent"... FAILED

Путь к Watchdir проверен.
Что может быть?


Отдельной темы у нас по этому вопросу нет, поэтому напишу здесь. Предлагаю ещё один вариант для реализации того же механизма (http://wl500g.info/showthread.php?24669-%CC%EE%ED%F2%E8%F0%EE%E2%E0%ED%E8%E5-%EE%E1%EB%E0%F7%ED%EE%E3%EE-%E4%E8%F1%EA%E0-(DropBox-%DF%ED%E4%E5%EA%F1-%C4%E8%F1%EA-Box-com-GoogleDrive)&p=245803#post245803): вы будете бросать torrent-файлы в папку Dropbox'а, а роутер забирать их оттуда и брать в работу. Это решение обходится без python'а и использует Dropbox-Uploader (http://github.com/andreafabrizi/Dropbox-Uploader), написанный на bash'е. Соответствующий пакет MercuryV уже добавил в репозиторий:

opkg install cron curl dropbox-uploader transmission-web
Определите в /opt/etc/transmission/settings.json папку, куда будет скачиваться torrent-контент и поместите в /opt/etc/cron.5mins исполняемый скрипт следующего содержания:

#!/opt/bin/bash

dropbox_uploader list | grep -iE "^ \[F\] .+\.torrent$" | sed "s|^ \[F\] ||g" | \
while read item
do
dropbox_uploader download "$item" "/opt/etc/transnmission/watchdir/$item"
dropbox_uploader delete "$item"
done
Скрипт будет периодически забирать новые torrent-файлы, появившиеся в папке аккаунта Dropbox, и, в отличие от питоновской версии, не будет пробуксовывать на кириллических именах. Скрипт разборчив, он не будет «засасывать» из папки Dropbox'а никакой мусор, только torrent-файлы. Далее необходимо создать приложение Dropbox, пройдя по этой ссылке (https://www.dropbox.com/developers/apps/create) и выбрав:

App type: Core,
App name: придумайте сами имя для вашего приложения,
Permission type: App folder,
Нажмите кн.«Create app»,
Name of app folder: Torrents,
Нажмите «Update».

Скопируйте App key, App secret, они понадобятся для подтверждения доступа dropbox-uploader'а на следующем шаге. Запустите на роутере dropbox-uploader без каких-либо параметров и введите:

App key — ясно,
App secret — ясно,
Access level [a/f]: a,
…it's ok? [y/n]: y,
Token request. На этом шаге необходимо скопировать предложенный в консоли URL в строку браузера и нажать на появившейся web-страничке кнопку «Можно». Только после этого возвращайтесь к консоли и нажимайте Enter.

Настройка закончена. Перегрузите роутер и попробуйте скрипты в действии. Любой torrent-файл, брошенный в папку Приложении\Torrents Dropbox-аккаунта должен исчезать из неё в течение пяти минут. Это означает, что роутер «принял» торрент в работу.

2028426
19-07-2016, 08:23
Доброго времени суток!
Все проделал как написано ниже и столкнулся с проблемой. Дропбокс при выполнении скрипта, файлы в облаке видет, но не цыпляет, пишет:
> No such file or directory: /35279 1.torrent
> Deleting "/35279 1.torrent"... FAILED
> No such file or directory: /18192 [kinozal.tv]id1444678.torrent
> Deleting "/18192 [kinozal.tv]id1444678.torrent"... FAILED

Путь к Watchdir проверен.
Что может быть?

Кто может подсказать в чём проблема?

xdimik
01-08-2016, 18:35
Кто может подсказать в чём проблема?
Проблема оказалась в том, что Dropbox_Uploader обновился в репо и старый скрипт не подходит.
Хорошо что дома на роутере делал эту схему пару лет назад, скопировав старую версию поверх новой дроп стал забирать и удалять файлы.
Теперь новая трудность cron не запускает скрипт каждые 5 минут, работает только при запуске ./torrent-watch.sh из консоли((

2028426
03-08-2016, 12:35
Проблема оказалась в том, что Dropbox_Uploader обновился в репо и старый скрипт не подходит.
Хорошо что дома на роутере делал эту схему пару лет назад, скопировав старую версию поверх новой дроп стал забирать и удалять файлы.
Теперь новая трудность cron не запускает скрипт каждые 5 минут, работает только при запуске ./torrent-watch.sh из консоли((

Можете выложить рабочий скрипт?