Du bist nicht angemeldet.
Seiten: 1
Wenn das über die Freigabe nicht geht, bleibt dir doch sicher noch der FTP Server. Da gibt es sicher einen auf der syn nas. Habe lange Zeit meine downloads auf einen Windows Rechner mit filezilla FTP Server geschoben. Natürlich brauchst du immer noch deinen USB Speicher an der fritzbox. Aber so kann die nas in den standby gehen.
das habe ich auch schonmal versucht. bin dann aber bei einem FTP server hängen geblieben.
Habe auf meinem Rechner den filezilla FTP server installiert und dort die Datein hochladen lassen.
Diese Einstellungen habe ich dann in fritzload benutzt. das user und pw feld haben nicht immer funktioniert. deshalb habe ich die info mit in den FTP link gepackt.
Ich habe meine Festplatte mit ext2 formatiert. Habe zwar nur 13Mbit im Download aber bei Transfer der Downloads auf meinen FTP Server lief es von der NTFS Platte nur mit 2-3MB/s. Jetzt mit der ext2 Platte geht es mit 5-6MB/s.
Ich habe mir auf der Fritzbox eine Startdatei für Fritzload angelegt die auch den Port weiterleitet, wenn er noch nicht da ist.
Wenn man es in fritzload integrieren möchte sollte man aber bestimmt noch etwas mehr fehler-prüfungen einbauen!
ps > /var/tmp/ps.dmp
cat /var/tmp/ps.dmp | if(! grep -q fritzload) then
echo "Starte FritzLoad"
(/var/media/ftp/USBHDD/fritzload/bin/install.sh /var/media/ftp/USBHDD/fritzload -g)
fi
echo "Port fuer Fritzbox Eintragen"
cat /var/flash/ar7.cfg | if(! grep -q "tcp 0.0.0.0:9090 0.0.0.0:90") then
echo "Port 9090->90 wird eingetragen"
cat /var/flash/ar7.cfg > /var/media/ftp/ar7.cfg
sed 's/\"tcp 0.0.0.0:443 0.0.0.0:443 0\"/\"tcp 0.0.0.0:443 0.0.0.0:443 0\",\"tcp 0.0.0.0:9090 0.0.0.0:90 0\"/g' /var/media/ftp/ar7.cfg > /var/media/ftp/ar7new.cfg
cat /var/media/ftp/ar7new.cfg > /var/flash/ar7.cfg
exec /etc/init.d/rc.net reload
else
echo "Port 9090->90 existiert schon"
fi
Das Plugin habe ich jetzt komplett überarbeitet.
Nun wird der JSON vom Hoster komplett mit Fehlermeldungen ausgewertet. Erste Tests haben bei mir gut funktioniert. Dateien können geladen werden und wenn es zu einem Fehler kommt, wird die Meldung vom Hoster ausgegeben.
#!/bin/sh
# JSON looks like this
#[{"error":0]
#["file_name":"file.part1.rar"]
#["file_size":"502MB"]
#["file_size_bytes":"526385156"]
#["generated_links":[["file.part1.rar"]
#[""]
#["https:\/\/c.rdb.so\/d\/WWDXQF2SEUWSQ\/file.part1.rar"]]]
#["main_link":"https:\/\/c.rdb.so\/d\/WWDXQF2SEUWSQ\/file.part1.rar"]
#["link":"http:\/\/www.share-online.biz\/dl\/2TJRYBINIWSH2"]
#["hoster_name":"Share-Online"]
#["hoster_url":"share-online.biz"]
#["hoster_image":"shareonline.png"]
#["max_chunks":"-1"]
#["media_keys":false]
#["swap":false}]
# JSON with error
#'{"error":11,"message":"Die Datei wurde nicht gefunden oder sie wurde gel\u00f6scht."}'
realdebrid() {
local try=0
local answer answerError answerMessage answerFileName answerFileLink
local oJson oJsonThis oJsonName oJsonValue
while [ $try -lt $retries ]; do
try=$(($try+1))
# get link from real debrid (if it fails try once more)
answer=$(curl -s -k "https://real-debrid.com/ajax/unrestrict.php?link=$link&login=$realDebriduser&pass=$realDebriduserpass") || continue
# remove { and }
oJson=${answer#\{*}
oJson=${oJson%\}*}
oJson=${oJson//,\"/;\"}
# loop for every JSON entry
while [ "$oJson" ] ;do
oJsonThis=${oJson%%;*}
# get Name and Value from actual Entry
oJsonName=${oJsonThis%%:*}
oJsonValue=$(oJsonValue=${oJsonThis#*:} && oJsonValue=${oJsonValue//\"} && echo "$oJsonValue")
# read values from JSON in vars
case $oJsonName in
"\"error\"")
answerError=$oJsonValue;;
"\"message\"")
answerMessage=$oJsonValue;;
"\"file_name\"")
answerFileName=$oJsonValue;;
"\"main_link\"")
answerFileLink=${oJsonValue//\\};;
*) ;;#echo "$oJsonValue";;
esac
# delete entry from string
[ "$oJson" = "$oJsonThis" ] && \
oJson='' || \
oJson="${oJson#*;}"
done
# is there a return code at all?
if ! [ -n "$answerError" ]; then
errmsg "Fehler: da ist wohl was komplett schief gelaufen"
return 1
fi
# Check if realdebrid returned an error (0=ok)
if [ "$answerError" -eq 0 ]; then
if download "$answerFileLink" "$answerFileName" "--retry 3 -C -"; then
return 0
fi
else
errmsg "Fehler: $answerMessage"
return 1
fi
done
return 1
}
# this function returns 0 if the multihoster can download the $url param
# realdebrid_check is currently disabled
# so every link is passed to realdebrid to see if a download is possible
realdebrid_check() {
#if [ -z "$realdebridhosterlist" ]; then
# realdebridhosterlist=$(curl -s "http://www.real-debrid.com/lib/api/hosters.php") || return 1
#fi
#[ -z "${realdebridhosterlist##*${hosterdomain}*}"] || return 1
return 0
}
wow. Das ist jetzt schon ein Jahr her. Habe bis vor kurzem nicht wieder in das Thema rein geschaut.
Habe es total vergessen, da ich zum FTP uploaden konnte, wenn man ftp://user:pw@server eingegeben hat.
Nun habe ich versucht mich selbst um das Problem zu kümmern. So wirklich verstehen tue ich nicht, warum curl ein Problem hat.
Wenn mich jemand da aufklären kann, wäre ich sehr froh darüber.
if $CURL -T $file$params "$url";then
diese Zeile habe ich verändert und die Variablen mit eval ausführen lassen
if eval $CURL -T "\""${file}"\""${params} "--connect-timeout 30" "$url";then
Zusätzlich habe ich noch einen Connection-Timeout von 30 Sekunden angefügt.
Auf diese Weise funktioniert der Upload, wenn man user und pw braucht.
Danach habe ich noch etwas weiter gespielt und versucht auf den HFS HTTP Server etwas hochzuladen.
Der Server muss in den Einstellungen als HFShttp://<HFSipaddress>/<HFSfolder>/ angegeben werden.
Hier muss curl jedoch wie folgt aufgerufen werden:
curl -F fileupload1=@MyFile.iso -F press="Upload files" http://<HFSipaddress>/<HFSfolder>/
Die downloadTransfer.sh habe ich nun sehr stark erweitert.
Die while Schleife für den Upload sieht jetzt bei mir so aus:
# --proxytunnel -x proxy:port
try=1
while [ "${try:-0}" -le 3 ];do
print "Dateiübertragung: $file >>> $url"
# support for uploading to FTP server
if ! [ -n "${url##ftp\:\/\/*}" ]; then
if eval $CURL -T "\""${file}"\""${params} "--connect-timeout 30" "$url";then
print "Dateiübertragung erfolgreich: Lösche lokal $file"
rm -f $file
return
fi
fi
# support for uploading to HTTP server
if ! [ -n "${url##http\:\/\/*}" ]; then
eval $CURL -T "\""${file}"\""${params} "--connect-timeout 30" "$url" 1> /dev/null
if [ "$?" -eq 0 ]; then
print "Dateiübertragung erfolgreich: Lösche lokal $file"
rm -f $file
return
fi
fi
# support for uploading to HFS HTTP Server
if ! [ -n "${url##HFShttp\:\/\/*}" ]; then
#curl -F fileupload1=@MyFile.iso -F press="Upload files" http://<HFSipaddress>/<HFSfolder>/
eval $CURL -F "fileupload1=\@\""${file}"\"" "-F press=\"Upload files\""${params} "--connect-timeout 30" "${url##HFS}\/" 1> /dev/null
#> /dev/null 2>&1
if [ "$?" -eq 0 ]; then
print "Dateiübertragung erfolgreich: Lösche lokal $file"
rm -f $file
return
fi
fi
errmsg "Die Dateiübertragung ist fehlgeschlagen! - $(curl_error_code "$?")"
try=$(($try+1))
done
Es passt zwar hier nicht mehr direkt zu. Jedoch habe ich vor den Upload noch ein WOL ähnlich wie für die NAS eingebaut:
url="${url%/}/"
# Check, if Server is On
print "Ist der Server ${cifsAdress} wach?"
ping -c 2 ${cifsAdress} > /dev/null 2>&1
if [ "$?" -gt 0 ]; then
# try to wake cifs server
print "Server mit der Mac-Adresse: ${cifsMAC} Aufwecken"
if [ -n "${cifsMAC}" ]; then
for intf in eth0 eth1; do
/usr/bin/ether-wake -i ${intf} ${cifsMAC} >/dev/null 2>&1 && _gui_output_format "Magic-Packet auf ${intf} gesendet - NAS wird hochgefahren."
done
if [ -n $TIMEINSEC ];then
TIMEINSEC=60
fi
print "Warte $TIMEINSEC Sekunden um den Server wach werden zu lassen"
try=1
while [ "${try:-0}" -le 6 ];do
sleep $(($TIMEINSEC/6)) # $TIMEINSEC Sekunden warten, bis zum ersten Mount-Versuch, default 60
ping -c 1 ${cifsAdress} > /dev/null 2>&1
if [ "$?" -gt 0 ]; then
print "Server erfolgreich aufgeweckt!"
break
fi
try=$(($try+1))
done
fi
else
print "Server ist wach!"
fi
# --proxytunnel -x proxy:port
Das ist meine komplette downloadTransfer.sh
Die neue Lösung mit dem httpd von der Busybox finde ich super. Auf meiner Fritzbox 7390 läuft FritzLoad nun deutlich flotter. Der Ressourcenverbrauch an der ganzen Fritzbox ist immernoch sehr gut. Das man nun endlich auch alles mit PW sichern kann ist auch klasse. Auch wenn das weiterleiten des Ports für die Fernwartung auf der Fritzbox nicht ganz trivial ist.
Vielen Dank an die eifrigen Entwickler!
Cool. Danke für die schnelle Implementierung!
Mir ist das schon sehr lange auf die nerven gegangen. Ist schon sehr praktisch, dass man durch open source sehr viel selber machen kann. Zumindest wenn man weiß wie es funktioniert.
Bei mir wurde die Progresstabelle und die Befehl-Tabelle immer versetzt übereinander angezeigt.
In der mt.css habe ich die Progresstabelle in der Breite angepasst (von 620px auf 610px). Jetzt ist alles nebeneinander.
Erste Zeile ist 1317
table.progress{
margin-top:5px; margin-left:0px;
border-collapse:collapse;
border-spacing:0;
border:1px solid #aaaaaa;
background-color:#ffffff;
width:610px;
font-size:12px;
}
Vorher
Nacher
Wenn das ein generelles Problem ist, wäre schön, wenn ein Entwickler das in das SVN übernehmen könnte!
Es gibt bei der NAS die Möglichkeit den Server mittels WOL Paket vorher aufzuwecken.
Meine Dateien schicke ich immer auf einen FTP Server. Diesen würde ich vorher auch gerne aufwecken.
Nun habe ich die downloadTransfer.sh angepasst und den Teil des wakes von der NAS in die FTP-Funktion (transferDownloadFile()) kopiert.
Als Server IP und Mac habe ich die Einstellungen von der NAS verwendet.
Wäre schön, wenn so oder so ähnlich die Funktion ins SVN kommt.
Leider bin ich noch totaler bash-Anfänger.
Bei mir funktioniert das Aufwecken vor dem Transfer.
Die erste (Z:821) und letzte Zeile ist jeweils das Original
url="${url%/}/"
# Check, if Server is On
print "Ist der Server ${cifsAdress} wach?"
ping -c 2 ${cifsAdress} > /dev/null 2>&1
if [ "$?" -gt 0 ]; then
# try to wake cifs server
print "Server mit der Mac-Adresse: ${cifsMAC} Aufwecken"
if [ -n "${cifsMAC}" ]; then
for intf in eth0 eth1; do
/usr/bin/ether-wake -i ${intf} ${cifsMAC} >/dev/null 2>&1 && _gui_output_format "Magic-Packet auf ${intf} gesendet - NAS wird hochgefahren."
done
if [ -n $TIMEINSEC ];then
TIMEINSEC=60
fi
print "Warte $TIMEINSEC Sekunden um den Server wach werden zu lassen"
sleep $TIMEINSEC # $TIMEINSEC Sekunden warten, bis zum ersten Mount-Versuch, default 60
fi
else
print "Server ist wach!"
fi
# --proxytunnel -x proxy:port
Telnetverbindung zur Frizbox aufbauen
Die ar7.cfg zum Bearbeiten kopieren
cat /var/flash/ar7.cfg > /var/media/ftp/ar7.cfg
folgendes suchen
#############################################
internet_forwardrules = "tcp 0.0.0.0:443 0.0.0.0:443 0",
"tcp 0.0.0.0:21 0.0.0.0:21 0";
#############################################und ersetzen
#############################################
internet_forwardrules = "tcp 0.0.0.0:443 0.0.0.0:443 0",
"tcp 0.0.0.0:21 0.0.0.0:21 0",
"tcp 0.0.0.0:90 0.0.0.0:90 0";
#############################################die ar7.cfg wieder zurück ind die Fritzbox kopieren
cat /var/media/ftp/ar7.cfg > /var/flash/ar7.cfg
anschließend noch eingeben
ar7cfgchanged
fertig
Stecker von der Fitzbox ziehen und neu starten lassen, dann bleiben die Einstellungen erhalten auch bei Reboot erhalten
fritzload ist jetzt unter IP:90 oder dyndns:90 erreichbar
Vielen Dank für die Anleitung.
Auf meiner 7390 habe ich es auch hinbekommen. Auch mit unterschiedlichen Quell- und Zielport.
einzig ar7cfchanged hat nicht funktioniert.
wiki - AR7CFCHANGED
hier steht, was in der ar7cfchanged drin steht. Daraufhin habe ich den code direkt in die Telnet Console eingegeben und nun ist der Webserver auch von außen erreichbar!
Vielen Dank nochmal für die Info!
exec /etc/init.d/rc.net reload
Meine Änderung funktioniert.
Ich habe es nochmal zur sicherheit mit einem normalen http: link geprüft.
vorher: answer=${answer%\",\"link\":\"http:*}
nachher: answer=${answer%\",\"link\":\"http*}
schon wieder hatte ich ein problem mit real debrid.
leider bin ich in bash ein totaler anfäger.
wie das "extrahieren" des richtigen links aus der antwort von real-debrid funktioniert hat etwas gedauert.
ich habe versucht über real-debrid mit oboom zu laden.
Den link von oboom hatte ich als https link. hier hat das script aber keinen gültigen link mehr gefunden.
In der Antwort von real steht "main_link":"[link zum download bei real]","link":"http(s)://(original link vom hoster)"
es wurde jedoch nach "link":"http:" gesucht. https fällt da leider raus.
die zeile für den reallink habe ich wie folgt geändert (plus ein paar kommentare)
# find link in anwser. it is between "main_link" and "link":http"
# remove everything before "main_link":
# remove everything after "link":"http"
reallink=$(answer=${answer##*\"main_link\":\"} && answer=${answer%\",\"link\":\"http*} && answer=${answer//[\\]/} && echo "$answer")
ich habe heute auch mal versucht über real debrid zu laden. der linkdecoder geht leider nicht mehr.
es liegt wohl daran, dass das SSL Zertifikat nicht besteht. obwohl ich im browser keinen SSL fehler bekomme.
wenn man curl mit -k aufruft, werden die SSL probleme ingoriert. dann funktioniert der hoster auch wieder!
answer=$(curl -s -k "https://real-debrid.com/ajax/unrestrict.php?link=$link&login=$realDebriduser&pass=$realDebriduserpass") || continue
habe auch die Beta installiert.
es sieht wohl so aus, als würde die debug.cfg beim booten von der neuen firmware gelöscht.
somit kann fritzload sich nicht einnisten.
ich hab einen umweg über die calllog gemacht
hier ist ein post wie ein anderer nutzer beschreibt, wie man ein programm in die calllog zum starten auffnehmen kann.
calllog
in meiner calllog steht z.B.
ps > /var/tmp/ps.dmp
cat /var/tmp/ps.dmp | if(! grep -q fritzload) then (/var/media/ftp/SAMSUNG-HM640JJ-05/fritzload/bin/install.sh /var/media/ftp/SAMSUNG-HM640JJ-05/fritzload -g) fi
Hallo,
ich habe ein Problem mit der Übertragung der Downloads via FTP.
Im log steh z.B.
curl: Can't open '/var/fritzload/downloads/transfer/test2.mp4[b] -u user:password[/b]'!
Es sieht wohl so aus, als ist der CURL befehl nicht richtig zusammen gesetzt. das ' sollte wohl direkt hinter dem Datei-Namen stehen und nicht hinter dem user:password.
Wenn man in der config den ftp komplett angibt (ftp://user:password@FTPserver) und die zwei Felder für user und pw leer lässt funktioniert der Transfer.
Ich nutze die Version V0.42/Rev.: 2480 auf einer 7390.
Seiten: 1