DLC Link-Extraktion / auto Link-Hinzufügen zur Download Station

floyd987

Benutzer
Mitglied seit
05. Jan 2014
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
Dankeschön!

Hey,

super Sache, hatte mir vorgenommen ein ähnliches Skript (wohl noch weniger ambitioniert) in Python zu schreiben.. kann ich mir jetzt sparen, also vielen Dank!

Ich hatte gelesen, dass es nur mit Admin-Account funktioniert, bei mir scheint es allerdings auch mit regulären Nutzern (mit eingrichtetem Zugriff auf die DownloadStation) zu funktionieren..

Dabei geht es mir nun deutlich besser, als wenn ich das Admin-Kennwort im Klartext in einer Konfigurationsdatei liegen habe. Vielleicht kann jemand mit ein bisschen mehr Ahnung kommentieren wie unsicher/sicher dieses Vorgehen (Passwort in Konfigurationsdatei) ist. Wenn ich es richtig sehe, dann wäre das in Verbindung mit einer Portweiterleitung zum Diskstation Webserver ziemlich fatal oder?

Wieviel mehr Aufwand wäre es anstatt dessen eine Login-Seite zur verschlüsselten Übermittlung von Benutzername und Passwort zur Verfügung zu stellen, über die dann (lokal und damit relativ sicher?) die (noch nicht) SSL-fähige Web-API angesprochen wird?

Nochmals dankeschön!
 

blubberblah

Benutzer
Mitglied seit
03. Nov 2013
Beiträge
59
Punkte für Reaktionen
0
Punkte
6
Hey,
Ich hatte gelesen, dass es nur mit Admin-Account funktioniert, bei mir scheint es allerdings auch mit regulären Nutzern (mit eingrichtetem Zugriff auf die DownloadStation) zu funktionieren..
Ich habs bisher noch nicht hinbekommen. SYNO.API.Auth::login funktioniert, SYNO.DownloadStation.Task::create schlägt mit Fehlercode 406 (No default destination) fehl. Der User hat Berechtigungen für die DownloadStation gesetzt. Selbst wenn ich den in die admin-Gruppe reinnehmen funkt es nicht. Was hast du denn für eine DSM Version und wie ist dein User im Detail konfiguriert?
Dabei geht es mir nun deutlich besser, als wenn ich das Admin-Kennwort im Klartext in einer Konfigurationsdatei liegen habe. Vielleicht kann jemand mit ein bisschen mehr Ahnung kommentieren wie unsicher/sicher dieses Vorgehen (Passwort in Konfigurationsdatei) ist. Wenn ich es richtig sehe, dann wäre das in Verbindung mit einer Portweiterleitung zum Diskstation Webserver ziemlich fatal oder?
Das Passwort wird momentan im Klartext beim Aufruf der DS WEB-Api übertragen. Das ist natürlich ein Sicherheitsrisiko. Ich kann aber HTTPS Support einbauen. Dann wäre des DS_API_ENDPOINT "https://<hostname>:5001/webapi". Es muss dann natürlich im DSM unter "Systemsteuerung / DSM-Einstellungen / HTTP-Dienst" HTTPS Support aktiviert sein.
HTTPS ist sicher Pflicht wenn man die Scripte NICHT auf der DS selbst hostet.

Bezgl. Passwort in Datei: Wenn nur du Zugriff auf diese Datei hast, dann sehe ich kein Risiko. Falls dritte darauf potentiell Zugriff haben sieht das natürlich wieder anders aus ;-)

Ein Problem besteht aber auch noch. Es kann sein, dass im Fehlerfall im Stacktrace das Passwort steht. Das ist natürlich unschön. Das könnte man aber maskieren, also unkenntlich machen.
Wieviel mehr Aufwand wäre es anstatt dessen eine Login-Seite zur verschlüsselten Übermittlung von Benutzername und Passwort zur Verfügung zu stellen, über die dann (lokal und damit relativ sicher?) die (noch nicht) SSL-fähige Web-API angesprochen wird?
Kann man alles machen, wenn man sich die Zeit nimmt :) Denkbar wäre: wenn in der Config keine Zugangsdaten gesetzt sind, muss man die beim finalen Adden der Links angeben.....
 

floyd987

Benutzer
Mitglied seit
05. Jan 2014
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
Ich habe den DS213j und darauf läuft DSM 4.3 - 3810. Der Fehlercode den du gepostet hast:

Fehlercode 406 (No default destination)

lässt vermuten, dass du für den Benutzer kein Standard Downloadverzeichnis angegeben hast. Ich habe sonst nichts außer den benötigten Privilegien eingestellt, aber eben einen Standard Verzeichnis für die Download dieses Nutzers in der Downloadstation eingetragen. Vielleicht klappts damit...

Nochmal zum Thema Sicherheit:
Das Skript irgendwo anders hosten macht imho wenig Sinn, da dann ein weiterer Übertragungsweg für das Passwort anfällt und außerdem das Skript ja momentan die Web API über http anspricht. Andersherum gesagt ist eben genau dieser Umstand nicht schlimm, so lange das Skript auf dem NAS liegt und über localhost der Zugriff auf die API stattfindet. Wenn ich das Skript (auf dem NAS) jetzt von außerhalb meines LANs aufrufen will, gibt es zwei Möglichkeiten:

1) Die Login-Daten werden erst dann übertragen (müsste man implementieren, kann ich aber nicht)
2) Die Passwort-Datei müsste irgendwie gut geschützt werden (.htaccess ausreichend? Vorschläge?)

Im Moment steht das Passwort bei mir auch in der etwas kryptisch zu lesenden Erfolgsmeldung. Wäre super, wenn du das nicht nur irgendwie "masken" könntest, sondern wenn es gar nicht erst in der Antwort übertragen wird. Jaja ich weiß, jetzt kommen die knallharten Feature-Requests :) Ich für meinen Teil werde das Ganze vorerst nur im LAN nutzen, dafür funktioniert es schon sehr zufriedenstellend.
 

blubberblah

Benutzer
Mitglied seit
03. Nov 2013
Beiträge
59
Punkte für Reaktionen
0
Punkte
6
Ich habe den DS213j und darauf läuft DSM 4.3 - 3810. Der Fehlercode den du gepostet hast:
lässt vermuten, dass du für den Benutzer kein Standard Downloadverzeichnis angegeben hast. Ich habe sonst nichts außer den benötigten Privilegien eingestellt, aber eben einen Standard Verzeichnis für die Download dieses Nutzers in der Downloadstation eingetragen. Vielleicht klappts damit...
Wo macht man das? Ich hab nix gefunden?
 

floyd987

Benutzer
Mitglied seit
05. Jan 2014
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
- DownloadStation übers Web-Interface öffnen (natürlich mit entsprechendem Nutzer vorher anmelden)
- Einstellungen öffnen
- unter "Ort" kann man einen "Standard - Zielordner" eintragen
 

blubberblah

Benutzer
Mitglied seit
03. Nov 2013
Beiträge
59
Punkte für Reaktionen
0
Punkte
6
- DownloadStation übers Web-Interface öffnen (natürlich mit entsprechendem Nutzer vorher anmelden)
- Einstellungen öffnen
- unter "Ort" kann man einen "Standard - Zielordner" eintragen
Der ist gesetzt - kann da auch über SSH auf Konsole mit dem user, den ich für die WEB-Api nehme reinwechseln und Dateien erstellen.
 

floyd987

Benutzer
Mitglied seit
05. Jan 2014
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
Hmm, war mein erster Gedanke, als ich die Fehlermeldung gesehen habe...
Wie gesagt, sonst habe ich eigentlich keine besondere Konfiguration vorgenommen. Der Nutzer ist in der Gruppe "users", der Standard Zielort für die Downloads liegt in seinem Home-Verzeichnis, so dass er natürlich auch Lese- und Schreibzugriff hat. Eine Quote habe ich nicht eingestellt. Der User hat Zugriff auf Audio-, Video- und DownloadStation.

Kann deinen Fehler nicht reproduzieren, bei mir klappts einwandfrei..
 

blubberblah

Benutzer
Mitglied seit
03. Nov 2013
Beiträge
59
Punkte für Reaktionen
0
Punkte
6
Ich habe den DS213j und darauf läuft DSM 4.3 - 3810. Der Fehlercode den du gepostet hast:

2) Die Passwort-Datei müsste irgendwie gut geschützt werden (.htaccess ausreichend? Vorschläge?)
Im Moment steht das Passwort bei mir auch in der etwas kryptisch zu lesenden Erfolgsmeldung. Wäre super, wenn du das nicht nur irgendwie "masken" könntest, sondern wenn es gar nicht erst in der Antwort übertragen wird. Jaja ich weiß, jetzt kommen die knallharten Feature-Requests :) Ich für meinen Teil werde das Ganze vorerst nur im LAN nutzen, dafür funktioniert es schon sehr zufriedenstellend.

zu 2): Die config.inc.php kann man nicht anzeigen, wenn man sie über die URL aufruft (deßhalb *.php und nicht nur *.inc) und ja, man könnte auch ein config-Verzeichnis legen welches via .htaccess geschützt ist, dann würde die Dateiendung keine Rolle spielen.

Passwortmasking bei Fehlern ist schon eingebaut. Das Passwort wird auch nicht mehr im Erfolgsfall angezeigt - kommt mit dem nächsten Release
 

Mahlstedt

Benutzer
Mitglied seit
14. Nov 2013
Beiträge
16
Punkte für Reaktionen
0
Punkte
1
Was läuft hier denn falsch?

AN UNEXPECTED EXCEPTION OCCURRED:

Failed parsing response: 'unknown error'

#0 /volume1/web/dlcapp/lib.inc.php(26): DlcDecrypter->decDcryptit('http://share-li...')
#1 /volume1/web/dlcapp/index.php(85): DlcDecrypter->decrypt('http://share-li...')
#2 {main}
 

andym

Benutzer
Mitglied seit
08. Apr 2013
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
Echt geniale Erweiterung und genau was ich gesucht habe, seitdem pyload noch nicht auf meiner DS214 läuft! Vielen Dank an alle die dazu beigetragen haben. Bezüglich der Sicherheit würde mir genügen, das Adminpasswort jedes Mal beim hinzufügen einzugeben und dass es bei der Ausgabe nicht drinsteht.
 

blubberblah

Benutzer
Mitglied seit
03. Nov 2013
Beiträge
59
Punkte für Reaktionen
0
Punkte
6
Neue Version

Anhang anzeigen dlc-add-2.5.1.zip

- Passwordmasking bei Fehler-/Debugausgabe
- Möglichkeit Passwort über GUI anzugeben
- Alle Requests werden via cURL verarbeitet (performance)
- Erfolgsmeldung nach erfolgreichem Adden verständlicher
- Stylefixes

Viel Spass damit ;-)

Edit: config.inc.php hat sich geändert! Diese also kopieren und anpassen!
 
Zuletzt bearbeitet:

floyd987

Benutzer
Mitglied seit
05. Jan 2014
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
Hey,

danke für das Update.
Wenn man beachtet, dass sich auch die Config-Datei geändert hat, funktioniert es einwandfrei :)
 

Al_Capone

Benutzer
Mitglied seit
21. Nov 2013
Beiträge
15
Punkte für Reaktionen
0
Punkte
0
Hey blubberblah,

da schaut man nen paar Tage nicht ins Forum und verpasst ja Welten! :)
Ist ja ne Menge passiert, vielen Dank an alle beteiligten.
Baut Ihr auch noch ein Matrix Theme drum oder bleibts eher bei dem white style? Keine Nerds mehr hier die auf Matrix abfahren wa... :-(

Gruß
AL
 

blubberblah

Benutzer
Mitglied seit
03. Nov 2013
Beiträge
59
Punkte für Reaktionen
0
Punkte
6
Hey blubberblah,
Baut Ihr auch noch ein Matrix Theme drum oder bleibts eher bei dem white style? Keine Nerds mehr hier die auf Matrix abfahren wa... :-(
Ich will die Matrix auch wieder zurück ;-) Muss sich einer mal mit dem CSS von bootstrap auseinandersetzen, Freiwillige vor!
 

zwantE

Benutzer
Mitglied seit
02. Feb 2012
Beiträge
302
Punkte für Reaktionen
0
Punkte
16
Ich hab noch einen Verbesserungsvorschläge :)
- am Ende einen Button einbauen der einen wieder zum Anfang bringt

Grüße
 

blubberblah

Benutzer
Mitglied seit
03. Nov 2013
Beiträge
59
Punkte für Reaktionen
0
Punkte
6
Neue Version

Anhang anzeigen dlc-add-2.5.2.zip

- Dateiname pro Downloadlink ermitteln (2. Seite: 'Lookup filenames'). Momentan nur für Uploaded implementiert
- Ergebnisseite am Ende hat einen Link auf die Startseite

Die Dateinamenermittlungsgeschichte kann ganz hilfreich sein wenn ein DLC z.B. duzende von Links enthält. Der Dateiname ist nicht immer im Klartext im eigentlichen Link kodiert und der interessiert ja oftmals. Das Ganze funkt erstmal nur mit Uploaded. in der config.inc.php können aber pro Hoster Reguläre Ausdrücke hinterlegt werden, mit denen auf der Hosterspezifischen-Downloadseite dann die Dateinamen extrahiert werden. Implementiert ist das mit cURL multi-get damit der Lookup keine Ewigkeit dauert. Wunder in Sachen Lookup-Performance darf man aber auch nicht erwarten.

Cheers,
Blubb

Edit: auch diesmal hat sich die config.inc.php geändert ;-)
 

LuScorpion

Benutzer
Mitglied seit
24. Dez 2013
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
Hammer Leistung was hier gemacht wird. Genau so stell ich mir das vor. :) Klappt alles super. Geil!
 

zwantE

Benutzer
Mitglied seit
02. Feb 2012
Beiträge
302
Punkte für Reaktionen
0
Punkte
16
@blubberblah: würdest du dich darum kümmer das das Projekt bei GitHub landet? Da du der "Vater" des ganzen bist, solltest du das auch übernehmen... :)

gibts inzwischen eigentlich schon Infos wie ich das Script mit einen anderen Account als mein "admin" benutzen kann?
 

Grandmaster666

Benutzer
Mitglied seit
26. Nov 2013
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
Hallo Blubberlblah!

Habe eine der ersten Versionen im Einsatz gehabt. Immer öfter habe ich dann aber die Kombination dcrypt.it und downloadmanager verwendet(und noch nichts von der neuesten Version gewusst)
Ein Blick ins Forum und alle meine Wünsche wurden erfüllt! Fettes Danke! Finde auch das Layout ohne Matrix viel besser und übersichtlicher!
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat