Hochgeladene Dateien auf einem Server verwalten

Hochgeladene Dateien auf einem Server verwalten

Ich habe einen Server, auf dem eine Intranet-Website gehostet wird, auf der unter anderem Dateien hochgeladen werden können. Die Dateien werden in einem Ordner mit eingeschränktem Zugriff gespeichert und über das Web-Backend verwaltet. Um Namenskollisionen zu vermeiden, plane ich, UUIDs zuzuweisen und den ursprünglichen Dateinamen zusammen mit der UUID in einer Datenbank für den späteren Abruf zu speichern.

Ich habe jedoch zwei Bedenken:

  1. Die Möglichkeit doppelter Dateien (auf tatsächlicher Byte-Ebene, nicht nur nach Namen) und
  2. Sicherstellen der Dateiintegrität.

Ich dachte, wenn ich eine Art Hash/Prüfsumme (MD5, SHA256 usw.) ausführe, könnte ich beide Probleme lösen. Ich könnte den Hash speichern und die Datei zu einem späteren Zeitpunkt vergleichen und sicherstellen, dass sie nicht beschädigt wurde. Wenn ich eine andere Datei mit demselben Hash finde, wüsste ich, ob es sich bei der Datei um ein echtes Duplikat handelt.

Meine Fragen sind also:

  1. Sind meine Bedenken hinsichtlich einer Dateibeschädigung unbegründet?
  2. Ist dies außerdem eine gute Strategie zum Identifizieren doppelter Dateien?

Antwort1

1) Dateibeschädigungen kommen nicht häufig vor und das zugrunde liegende System sollte solche Dinge verhindern und davor warnen, aber ja, es ist gut, das noch einmal zu überprüfen. Besser noch, ein Backup außerhalb des Standorts zu habenhttp://en.wikipedia.org/wiki/Vergleich_von_Backup-Software

2) Wenn Sie ohnehin Hashes verwenden, sind keine anderen Strategien erforderlich. Es gibt jedoch Dinge wie die Rsync-Verschiebungserkennung, die alle Dateien nach Größe vergleicht, was schön und schnell ist. Alle Dateien mit derselben Größe werden dann gehasht, falls dies noch nicht geschehen ist, und auf Eindeutigkeit geprüft. Abhängig vom Dateiinhalt gibt es andere Optionen wie Git für Text oder Quality Trumping für Medien.

verwandte Informationen