staging.inyokaproject.org

CURL oder Wget mit RegEx für einen Zip Download?

Status: Gelöst | Ubuntu-Version: Ubuntu 18.04 (Bionic Beaver)
Antworten |

EricBerne

Anmeldungsdatum:
13. Juli 2014

Beiträge: 274

Hallo Leute,·

gerne möchte ich von der Seite: https://www.shopware.com/de/download/

den Shop als zip herunterladen.·

Dabei möchte ich CURL oder Wget nutzen und als REGEX.· z.B.·

1
curl https://releases.shopware.com/sw6/install_*.zip 

kennt jemand eine Lösung dafür?

misterunknown Team-Icon

Ehemalige
Avatar von misterunknown

Anmeldungsdatum:
28. Oktober 2009

Beiträge: 4403

EricBerne schrieb:

Dabei möchte ich CURL oder Wget nutzen und als REGEX.· z.B.·

1
curl https://releases.shopware.com/sw6/install_*.zip 

kennt jemand eine Lösung dafür?

Das kann schon konzeptionell nicht funktionieren: Woher soll curl die eigentliche URL wissen? Ein Regex ist nur ein Muster. Man kann zwar mit curl in einem gewissen Maße URL-Globbing nutzen, aber ich glaube in deinem speziellen Fall ist eine etwas elaboriertere Lösung nötig, die die Download-URL aus der Seite heraus parst, beispielsweise so:

curl -so- "https://www.shopware.com/de/download/" | grep -oP 'https://releases.shopware.com/sw6/install_.*?\.zip' | xargs curl -so shopware-install.zip

EricBerne

(Themenstarter)

Anmeldungsdatum:
13. Juli 2014

Beiträge: 274

Hi @misterunknown,

vielen Dank für die Antwort.

Werde mich damit jetzt etwas mehr beschäftigen.

Übrigens:(CURL)

1
2
-s Parameter unterdrückt die Fortschrittsanzeige
-o Behäldt den Remotenamen der Datei

Vielen Dank.

misterunknown Team-Icon

Ehemalige
Avatar von misterunknown

Anmeldungsdatum:
28. Oktober 2009

Beiträge: 4403

EricBerne schrieb:

1
-s Parameter unterdrückt die Fortschrittsanzeige

... und Fehlermeldungen (silent).

-o Behäldt den Remotenamen der Datei

Nein, es legt den Dateinamen fest. Im ersten Request wird curl angewiesen den Inhalt einfach nach STDOUT zu schreiben. Im zweiten Request werden die Daten nach "shopware-install.zip" geschrieben. Will man den originalen Dateinamen beibehalten, kann man -O und -J verwenden.

EricBerne

(Themenstarter)

Anmeldungsdatum:
13. Juli 2014

Beiträge: 274

Aha,

danke, für die richtige Darstellung. 😊

👍

EricBerne

(Themenstarter)

Anmeldungsdatum:
13. Juli 2014

Beiträge: 274

Hallo Gemeinde,

ich nehme Bezug auf diesen Post hier:

https://forum.ubuntuusers.de/topic/curl-oder-wget-mit-regex-fuer-einen-zip-downlo/

Das hat funktioniert.

Wollte das nachbauen, aber es klappt nicht. Jetzt möchte ich wissen warum nicht. Konkret geht es um folgenden Konstrukt.

1
curl -so- "https://www.shopware.com/de/download/" | grep -oP 'https://www.shopware.com/de/Download/redirect/version/sw6/file/install_6.1.5_1585830011.zip' | xargs curl -so shopware-install.zip

Kann mir jemand erklären warum nicht? Was übersehe ich? Danke im Voraus.

Mir ist klar, dass ich das ZIP-File ich das mit wget einfach so herunterladen kann, mir geht es um das Verständnis.

Moderiert von Cranvil:

Das Thema ist mit diesem zusammengeführt worden, da es sich noch deutlich genug als Fortsetzung liest.

Cranvil

Anmeldungsdatum:
9. März 2019

Beiträge: 990

Inwiefern klappt es nicht? Passiert gar nichts? Keine einzige Ausgabe? Oder sprechen wir von dem anderen Extrem, dass sich die Pforten zu Himmel und Hölle auftun und Engel mit Sukkuben verkehren?

dingsbums

Anmeldungsdatum:
13. November 2010

Beiträge: 3793

... grep -oP 'https://www.shopware.com/de/Download/redirect/version/sw6/file/install_6.1.5_1585830011.zip' ...

curl --help | grep redirect
 -L, --location      Follow redirects
     --max-redirs <num> Maximum number of redirects allowed
     --proto-redir <protocols> Enable/disable PROTOCOLS on redirect
     --stderr        Where to redirect stderrts

... | xargs curl -Lso shopware-install.zip

EricBerne

(Themenstarter)

Anmeldungsdatum:
13. Juli 2014

Beiträge: 274

Aha,

danke für die Hilfe und für die Aufklärung.

Ich dachte das es sich bei der URL:

1
grep -oP 'https://www.shopware.com/de/Download/redirect/version/sw6/file/install_6.1.5_1585830011.zip'

um das Endresultat handelt. Dem ist es aber nicht so. Hier das Ergebnis:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
example@hetzner:~/download$ curl -I https://www.shopware.com/de/Download/redirect/version/sw6/file/install_6.1.5_1585830011.zip
HTTP/1.1 302 Found
Date: Fri, 17 Apr 2020 06:35:34 GMT
Server: Apache
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, no-cache, private
Pragma: no-cache
Set-Cookie: session-1=2e01dae3b67b9194b1c538b266f5ef478e537bd6fc9f3b59d6ba47d4c8105d1d; path=/; secure; HttpOnly
Set-Cookie: x-cache-context-hash=deleted; expires=Thu, 18-Apr-2019 06:35:33 GMT; Max-Age=0; path=/; httponly
Set-Cookie: nocache=deleted; expires=Thu, 18-Apr-2019 06:35:33 GMT; Max-Age=0; path=/; httponly
Upgrade: h2
Connection: Upgrade
Location: https://releases.shopware.com/sw6/install_6.1.5_1585830011.zip
Vary: User-Agent
Content-Type: text/html; charset=UTF-8

Dann kommt eins zum anderem.

Wusste auch nicht das CURL den redirect folgen kann.

Etwas dazu gelernt!!

Vielen Dank für die Hilfe.

Antworten |