Ich möchte wget
(von einem PHP-Skript) zum Herunterladen von Bilddateien verwenden, möchte jedoch keine Dateien über eine bestimmte Größe herunterladen.
Kann ich die Dateigröße mit einschränken wget
? Wenn nicht, was ist ein besserer Weg?
Wenn Sie Skripte für Downloads erstellen, sollten Sie curl
stattdessen die Verwendung in Betracht ziehen . Wget kann die Ausgabe analysieren und rekursiv ganze Sites abrufen, aber Curl bietet weitaus mehr Optionen in Bezug auf den tatsächlichen Download einer bestimmten Datei. Hier ist die entsprechende Option in der Manpage:
--max-filesize Geben Sie
die maximale Größe (in Byte) einer herunterzuladenden Datei an. Wenn die angeforderte Datei größer als dieser Wert ist, wird die Übertragung nicht gestartet und die Wellung wird mit dem Beendigungscode 63 zurückgegeben.
HINWEIS: Die Dateigröße ist vor dem Herunterladen nicht immer bekannt. Bei solchen Dateien hat diese Option auch dann keine Auswirkung, wenn die Datei vorhanden ist Die Übertragung ist am Ende größer als dieses vorgegebene Limit.
Der Hinweis, dass dies nur für einige Dateien funktioniert, ist erwägenswert. Der Client ist darauf angewiesen, dass der Server meldet, wie groß die Datei sein wird, bevor der Download beginnt. Die meisten, aber sicherlich nicht alle Server melden dies.
$n
Bytes:(ulimit -f $(($n/512)); curl --max-filesize $n …)
.curl
wird mit einem Fehler abgebrochen, wenn die Dateigröße$n/512
512-Byte-Blöcke überschreitet.Wenn Sie wget verwenden möchten, können Sie hier die Größe der Datei testen, ohne sie herunterladen zu müssen:
Wo
$URL
ist die URL der Datei, die Sie herunterladen möchten?So können Sie Ihr Skript basierend auf der Ausgabe konditionieren. sowie:
zur Begrenzung der Downloadgröße auf 20 MB.
(Der Code ist hässlich, nur zu Informationszwecken).
quelle
Es scheint keine vernünftige Möglichkeit zu geben, mit wget eine maximale Dateigröße festzulegen.
quelle
ulimit
(siehebash(1)
,setrlimit(2)
) wird auch funktionierenwget(1)
, obwohl es ein bisschen hartnäckig ist.wget hat eine
-Q
--quota
Option, die die maximale Downloadmenge begrenzt, wenn mehrere URLs (rekursive oder Eingabelisten) angegeben werden.https://www.gnu.org/software/wget/manual/html_node/Download-Options.html
/programming//a/20318140/4364036
quelle