Zwei Bilder vergleichen, ohne sie vollständig herunterzuladen?

Zwei Bilder vergleichen, ohne sie vollständig herunterzuladen?

Ich möchte eine Kopie einer großen Bilddatei (+20 MB) herunterladen, wenn sie sich ändert. Aber wie soll ich wissen, ob sich das Bild geändert hat oder nicht, ohne es alle X Sekunden herunterzuladen und mit der alten Version zu vergleichen, die ich habe? Andernfalls würde es sehr bandbreitenintensiv und langsam sein.

Gibt es eine Möglichkeit, die Größe des Bildes zu bestimmen, bevor es vollständig heruntergeladen wird? Wenn sich also die Größe geändert hat, bedeutet das, dass sich auch das Bild geändert hat.

Können wir zwei Bilder vergleichen, ohne sie herunterzuladen (oder indem wir nur die ersten paar Kilobyte herunterladen)? Mit anderen Worten: Enthalten die Bilder Größeninformationen oder einen Hash-Wert? Oder etwas in der Art.

Antwort1

Wget erlaubt den Download nur, wenn die serverseitige Datei neuer ist:

       When running Wget with -N, with or without -r or -p, the decision
       as to whether or not to download a newer copy of a file depends on
       the local and remote timestamp and size of the file.  -nc may not
       be specified at the same time as -N.

Antwort2

Ansatz 1:Der Dateiserver erlaubt möglicherweise den Verzeichniszugriff. Versuchen Sie, auf die Ausgabe des übergeordneten Verzeichnisses zuzugreifen und diese dann zu analysieren. Beispiel:https://www.kernel.org/pub/site/

Ansatz 2:Rufen Sie im Code das Header-Feld „content-length“ ab, um die Dateigröße zu ermitteln, dieMaiein Hinweis darauf sein, dass sich die Datei geändert hat. Beispiel:https://stackoverflow.com/questions/2983073/how-to-know-the-size-of-a-file-before-downloading-it/12271781#12271781

Ansatz 3:Bitten Sie den Serveradministrator, Ihnen eine Prüfsumme zum Herunterladen, eine Benachrichtigung, dass eine neue Datei verfügbar ist, oder eine andere Form des Shell-/Verzeichniszugriffs bereitzustellen.

verwandte Informationen