NEWS
Online JPG local Speichern
-
Hallo Zusammen
Mein Dashboard Darf nicht auf das Internet Zugreifen. Jetzt werden dadurch nicht die aktuellen Bilder der Lieder auf meinem Dashboard angezeigt.
Ich würde gerne das Web JGP local Speichern und so verlinken.
Ich könnte entweder auf meinem Qnap nass Server den Webserver Benutzen oder direkt Iobroker. Kenne mich auch leider weder gute mit Html noch Java aus um es umzusetzen es dürfe ja nicht sehr schwer sein in google habe ich leider nichts passendes gefunden weil er bei jedem Lieder wechseln ein Neues Bild laden muss B.z.w. die Datei aktualisieren muss.
Vielleicht weiß auch jemand eine noch einfachere Lösung.
-
-
@Staubi0815 Ich würde das wahrscheinlich mit einem Reverse Proxy machen.
Beispiele:
- Apache
- nginx
- haProxy (mein Favorit)
Den kannst du so einstellen, dass er gewisse URLs intern weiterleitet (das heisst, die Verbindung besteht nur von dir zum Reverse Proxy und dann vom Proxy zum Server).
-
Vielen Dank für die Schnelle Antwort Hab haProxy Installiert aber das ist mir zu kompliziert. Ordernliche anleitung mit der ich was anfangen könnte habe ich auch nicht gefunden.
Der Andere Link im Forum war super hat auch gleich geklappt. Leider funktiniert das bei mir anders dachte erst der Link bleibt gleich aber er ändert sich bei jedem Lied. Jetzt müsste ich den Datenpunkt einfugen aber das Klappt nicht.
So ist die Zeile Orginal
let urlCam1 = "https://m.media-amazon.com/images/I/71w7GcgaijL.UL600.jpg"; //URL zum Radarbild
Mit eingefügtem Datenpunkt geht es aber nicht mehr.
let urlCam1 = "alexa2.0.Echo-Devices.G2A0XL07016608A5.Player.mainArtUrl"; //URL zum Radarbild
Orignal Code
/*Author: Jey Cee jey-cee@live.com; Version: 0.1.2; Datum: 05.10.2019*/ let objPath = 'DECHO' //Der Pfad zu den Skript Objekten; Ergebnis: javascript.0.DWD let urlCam1 = "https://m.media-amazon.com/images/I/71w7GcgaijL._UL600_.jpg"; //URL zum Radarbild let intervall = 1; //Zeit intervall für die Abfrage; 0 = Dynamisch, 1-x = Zeit in Sekunden; //Ab hier keine Änderungen mehr createState(objPath + '.image', '', false, {type: 'string'}); createState(objPath + '.start', false, false, {type: 'boolean', role: 'switch'}); const request = require('request').defaults({ encoding: null }); on({id: 'javascript.0.' + objPath + '.start', val: true}, function(){ getSnap(); }) function getSnap(){ request.get(urlCam1, function (error, response, body) { if(error){ log(error); } if (!error && response.statusCode == 200) { let data = "data:" + response.headers["content-type"] + ";base64," + new Buffer(body).toString('base64'); setState('javascript.0.' + objPath + '.image', data); } if(intervall === 0 && getState('javascript.0.' + objPath + '.start').val === true){ getSnap(); }else if(intervall !== 0 && getState('javascript.0.' + objPath + '.start').val === true){ setTimeout(function(){ getSnap(); }, intervall * 1000); } }); }
Bei dem Let müsste ich irgendwie den URL Wert aus dem Datenpunk einfügen. Weiß dafür das richtige script?
-
Habe es mit
getState("alexa2.0.Echo-Devices.G2A0XL07016608A5.Player.mainArtUrl").val;
War leider nicht des rätsels lösung. Ich kann das image ganz kurz am Tablet sehen und dann ist es wieder weg.
Wenn ich den Link aus dem Datenpunkt im Browser öffne funktioniert es.
-
@UncleSam Kannst du mir vielleicht Hilfe geben ich weiß überhaupt nicht wo ich anfangen soll.
Wie hast du den HAproxy laufen als Docker?
Die qnap Installations Datei ist schon 3 Jahre alt. [https://www.qnapclub.eu/de/qpkg/212](link url)
Habe auch festgestellt das die URl nicht gleich bleibt sondern bei jedem Lied ändert sich die jpg URL.
Geht in die Richtung "https://m.media-amazon.com/images/I/71mM8KostdL.UL600.jpg" Könnte ich alle ab "https://m.media-amazon.com/images" Freigeben das würde schon viel Helfen?
-
@Staubi0815 sagte in Online JPG local Speichern:
Wie hast du den HAproxy laufen als Docker?
Ja, ich verwende HAproxy immer in Docker. Allerdings habe ich nicht denselben Anwendungsfall wie du.
Hier eine Beispiel-Config, die deine URLs weiterleiten sollte:
global user root group root defaults log global mode http balance roundrobin timeout connect 5000 timeout client 50000 timeout server 50000 frontend http bind *:8123 acl is_image_url path_beg /images/ use_backend amazon-images if is_image_url default_backend amazon-images backend amazon-images mode http server amazon-images m.media-amazon.com:443 ssl verify none
Die Zeile
use_backend amazon-images if is_image_url
ist in deinem Fall überflüssig, aber so hast du die Möglichkeit, weitere Backends hinzuzufügen, mit denen du auf andere Server weiterleitest.Der Server hört auf Port 8123 (musst du je nachdem noch freigeben in der Container Station) und dann kannst du theoretisch mit der folgenden URL darauf zugreifen:
http://<dein-nas>:8123/images/I/71mM8KostdL.UL600.jpg
Leider macht der Proxy zusammen mit CloudFront ein Problem. Aber ich denke, das kannst du sicher lösen.