Creator1981
Anmeldungsdatum: 12. Juli 2014
Beiträge: Zähle...
|
Hallo, ich möchte per CronJob Täglich eine Datei herunterladen.
Dies habe ich auch mit wget probiert.
wget --user-agent=firefox https://superlink.de/?geheim=......... Das Problem dabei, der Link ( https ) bezieht sich nicht direkt auf eine Datei, sondern wohl auf ein Script, welches erst das recht prüft und dann die Datei ausliefert.
Kann ich den Download dennoch irgendwie realisieren über die Shell?
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
Creator1981 schrieb: Dies habe ich auch mit wget probiert.
wget --user-agent=firefox https://superlink.de/?geheim=.........
Und war das erfolgreich? Oder welcher Fehler kommt?
Das Problem dabei, der Link ( https ) bezieht sich nicht direkt auf eine Datei, sondern wohl auf ein Script, welches erst das recht prüft und dann die Datei ausliefert.
Und wie äußert sich das?
Kann ich den Download dennoch irgendwie realisieren über die Shell?
Es gibt Techniken bei denen das schwieirig ist, aber normalerweise sollte man das immer tun können.
|
Creator1981
(Themenstarter)
Anmeldungsdatum: 12. Juli 2014
Beiträge: 69
|
Und war das erfolgreich? Oder welcher Fehler kommt?
Je nach dem was man als erfolgreich betrachtet. ☺
Es kommt ein 200 zurück. | HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘superlink.de/.....’
FINISHED --2018-05-08 09:29:51--
Total wall clock time: 0,5s
Downloaded: 1 files, 7,2K in 0s (84,5 MB/s)
|
Danach passiert nichts mehr.
Dann wird ja auch erst der Download angeboten.
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
In der heruntergeladenen Datei sollte ja dann der "richtige" Download-Link stehen...
|
Creator1981
(Themenstarter)
Anmeldungsdatum: 12. Juli 2014
Beiträge: 69
|
In der heruntergeladenen Datei sollte ja dann der "richtige" Download-Link stehen...
Nein steht er leider nicht. Ich meine auch, dass das ein extra bzw. zusätzlicher Response vom Server ist.
Man stellt ja eine Server Anfrage, welche HTML ausliefert und zusätzlich öffnet sich das Download Fenster.
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
Creator1981 schrieb: Nein steht er leider nicht.
Was steht denn in der Datei?
Ich meine auch, dass das ein extra bzw. zusätzlicher Response vom Server ist. Man stellt ja eine Server Anfrage, welche HTML ausliefert und zusätzlich öffnet sich das Download Fenster.
Dann ist es irgendeine Javascript-Funktion, die das Popup öffnet. Du kannst auch einfach im Chrome die Entwicklertools aufmachen und gucken, welche Requests wirklich gesendet werden. Einträge im Netzwerk-Tab kann man sogar direkt als cURL kopieren.
|
Creator1981
(Themenstarter)
Anmeldungsdatum: 12. Juli 2014
Beiträge: 69
|
Was steht denn in der Datei?
xhtml was nicht relevant ist. Das hat mit JS nichts zu tun denke ich. Das "Popup" kommt ja vom Browser, also das Fenster wo man sagen kann wohin man die Datei speichern oder ob man sofort öffnen möchte.
Du kannst auch einfach im Chrome die Entwicklertools aufmachen und gucken, welche Requests wirklich gesendet werden. Einträge im Netzwerk-Tab kann man sogar direkt als cURL kopieren.
Der Link wird aber erst generiert, somit müsste ich diesen immer erst herausfinden. Dazu wird es mit Sicherheit so sein, das mit jedem Aufruf sich der Download Link ändern wird. Das Script auf dem Server wird wohl so was in der Art machen:
| $file = "datei/pfad/datei123.zip";
header("Content-Type: application/zip");
header("Content-Disposition: attachment; filename=datei.zip");
header("Content-Length: ". filesize($file));
readfile($file);
|
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
Creator1981 schrieb: xhtml was nicht relevant ist.
Sicher? Wenn es dort beispielsweise ein Meta-Element gibt, welches dich entsprechend umleitet, ist das schon relevant.
Das hat mit JS nichts zu tun denke ich. Das "Popup" kommt ja vom Browser, also das Fenster wo man sagen kann wohin man die Datei speichern oder ob man sofort öffnen möchte.
Ok, also einfach der Speichern-Dialog. Dann wirst du vermutlich einfach umgeleitet. Das passiert meist entweder mit einem HTTP-Header (Location) oder per Meta-Element.
Der Link wird aber erst generiert, somit müsste ich diesen immer erst herausfinden. Dazu wird es mit Sicherheit so sein, das mit jedem Aufruf sich der Download Link ändern wird.
Was ist denn der konkrete Link? Oder ist das geheim? Guck dir einfach mal die Header an, wenn du den Request ausführst:
curl -i http://... Das Script auf dem Server wird wohl so was in der Art machen:
| $file = "datei/pfad/datei123.zip";
header("Content-Type: application/zip");
header("Content-Disposition: attachment; filename=datei.zip");
header("Content-Length: ". filesize($file));
readfile($file);
|
Offenbar nicht, denn dann würdest du ja direkt den Inhalt des Files bekommen, und kein HTML.
|
Marc_BlackJack_Rintsch
Ehemalige
Anmeldungsdatum: 16. Juni 2006
Beiträge: 4578
Wohnort: Berlin
|
@misterunknown: Wahrscheinlich eher nicht im HTTP-Header wenn HTML ausgeliefert wird und ein Download gestartet wird. @Creator1981: Wieso denkst Du, dass das nichts mit JavaScript zu tun hat? Den Download-Dialog vom Browser kann man auch auf verschiedenen Wegen in JavaScript erreichen. Zum Beispiel in dem man per JavaScript einen Link “anklickt“, der zu einem Download führt. Der Link muss dabei nicht sichtbar sein, und kann auch erst durch JavaScript erzeugt worden sein. Am besten Du schaust wirklich mal in einem Browser nach was genau passiert.
|
Creator1981
(Themenstarter)
Anmeldungsdatum: 12. Juli 2014
Beiträge: 69
|
Da kommt wohl doch kein Download Dialog mehr im Chrome.
Der Link ist in der Tat mal geheim, weil ich damit ein Backup von einer Redmine Installation herunterlade.
Dazu bin ich auch noch sehr stark eingeschränkt, weil der Link nur einmal am Tag funktioniert. ☹ Aber ich glaube ich habe das Problem gefunden, auch wenn ich jetzt nicht mehr testen kann. ☹
Muss ich die URL welche ein & enthält escapen irgendwie? Aus: https://tolleurl.de/?key=value&secret=23435tgkriot54 wird: https://tolleurl.de/?key=value Das erklärt dann auch, warum das XHTML wirklich uninteressant war.
Ich muss jetzt bis Morgen warten um wieder testen zu können von daher....
|
Marc_BlackJack_Rintsch
Ehemalige
Anmeldungsdatum: 16. Juni 2006
Beiträge: 4578
Wohnort: Berlin
|
@Creator1981: Vor der Shell muss ein & geschützt werden, weil es für die Shell eine besondere Bedeutung hat.
|
Creator1981
(Themenstarter)
Anmeldungsdatum: 12. Juli 2014
Beiträge: 69
|
Ja das war mein Fehler. Ist somit erledigt. ☺ Wie schnell man doch an der falschen Stelle sucht...
|