Wenn ich eine große Datei auf einen FTP-Server hochladen würde, wird diese Datei sofort im Zieldateisystem angezeigt und kann möglicherweise eine andere Partei auf sie zugreifen, bevor die Übertragung abgeschlossen ist?
Wenn ja, wie können Sie verhindern, dass die Datei gelesen wird, bis die Übertragung abgeschlossen ist?
Antworten:
Dies hängt vollständig vom Verhalten der jeweiligen Serverimplementierung ab und ist in RFC959 nicht vollständig definiert .
Im Allgemeinen ist eine Datei auf dem Server erst dann verfügbar, wenn beim Hochladen eine 226 zurückgegeben wurde und der Status 150 lautet. Wenn die Datei noch nicht vollständig hochgeladen wurde, lautet die Statusantwort nicht 550 und die Datei wird nicht übertragen an den Client.
Zu diesem Zweck weiß das STOU-Verb, dass ein Datei-Upload abgeschlossen ist, wenn das EOF-Byte eintrifft. Zu diesem Zeitpunkt wurde also die gesamte Datei hochgeladen, und es wird 226 zurückgegeben.
Das RECV- Verb gibt zuerst den Status der angeforderten Datei zurück. Eine Antwort von 150 wird erwartet, wenn sich die Datei in einem akzeptablen Status befindet. Anschließend wird die Übertragung gestartet.
Beachten Sie außerdem, dass die meisten Serverdienste als Multithread-Anwendungen implementiert sind und die Thread-Sicherheit für Dateien in der Regel vom Dateisystem und den Sperren des Server-Betriebssystems für die Dateien abhängt. Auf den meisten Plattformen können andere Threads beim aktiven Schreiben einer Datei diese Datei weder lesen noch schreiben, bis die Sperre aufgehoben wird.
quelle
Theoretisch kann der FTP-Server den Zugriff auf die hochgeladene Datei durch andere Prozesse oder andere FTP-Verbindungen verhindern.
In der Praxis ist dies auf * nix-Servern nicht der Fall. Ich habe dies auf CentOS mit PureFTPD und ProFTPD (den am häufigsten verwendeten * nix FTP-Servern) getestet. Bei beiden Servern hindert Sie nichts daran, eine unvollständige Datei herunterzuladen.
Auf der anderen Seite sperrt der Windows IIS-FTP-Server die hochgeladene Datei. Getestet unter IIS 6.2 (Windows 8.1).
Eine Problemumgehung finden Sie unter Meine Antwort auf FileZilla-Uploads sind nicht atomar .
quelle
Wenn Ihr FTP-Server eine ähnliche Funktion wie die Hidden Stores von ProFTPD zulässt, sollten Sie dies ausprobieren.
Quelle: http://www.proftpd.org/docs/directives/linked/config_ref_HiddenStores.html
quelle