Sicherstellen, dass Dateiupload auf fremdem FTP-Server beendet ist
Hallo Forum,
ich entwerfe ein Programm, welches einen beliebigen FTP-Server nach Dateien untersucht.
Diese Dateien werden, nachdem sie von meinem Scanner erkannt wurden, verarbeitet.
Anschliessend soll die Datei verschoben oder gelöscht werden.
Das Funktioniert soweit sehr gut, bis eine Datei etwas größer ist, sodass der Upload länger als einen Scanintervall benötigt.
In genau dieser Situation möchte ich sicherstellen, dass die Datei, die von meinem Scanner an die entsprechend weiterverarbeitenden Unterprozesse weitergegeben wird, vollständig hochgeladen worden ist.
Randbedingungen:
Die Daten werden von Unbekannt auf den Server geladen - somit besteht nicht die Möglichkeit auf Filtern per Namenspre- oder postfix.
Das Verhalten der Uploader ist also nicht beeinflussbar. Damit entfällt leider die einfachste Möglichkeit.
Daher jetzt die Frage: Wie stelle ich sicher, dass der Upload beendet ist?
Eine STAT Abfrage an den FTP liefert nach meiner Recherche auch keine nutzbaren Ergebnisse.
Jede Datei, die vom Scanner gefunden wurde, zu "beobachten" (i.e. Größe der Datei zum Zeitpunkt A verglichen mit Größe von Zeitpunkt B) ist zu unsicher.
Gibt es FTP-Server Befehle die mir hier weiter helfen, von denen ich nichts weiss? Oder einen Workaround? Oder andere Ansätze?
[EDIT]
Wichtige Info die ich vergessen habe:
Mein Scanner läuft auf meinem eigenen System, die FTP-Server sind 'meist' entfernte Server. Da der Scanner auf unterschiedlichen System nach Dateien scannt ist mir eine einheitliche Lösung lieber, als vorher noch zu überprüfen, ob es sich um einen FTP-Server bei mir handelt.
[/EDIT]
Ich bin für jeden Tip dankbar.
Grüße
bombaaa
ich entwerfe ein Programm, welches einen beliebigen FTP-Server nach Dateien untersucht.
Diese Dateien werden, nachdem sie von meinem Scanner erkannt wurden, verarbeitet.
Anschliessend soll die Datei verschoben oder gelöscht werden.
Das Funktioniert soweit sehr gut, bis eine Datei etwas größer ist, sodass der Upload länger als einen Scanintervall benötigt.
In genau dieser Situation möchte ich sicherstellen, dass die Datei, die von meinem Scanner an die entsprechend weiterverarbeitenden Unterprozesse weitergegeben wird, vollständig hochgeladen worden ist.
Randbedingungen:
Die Daten werden von Unbekannt auf den Server geladen - somit besteht nicht die Möglichkeit auf Filtern per Namenspre- oder postfix.
Das Verhalten der Uploader ist also nicht beeinflussbar. Damit entfällt leider die einfachste Möglichkeit.
Daher jetzt die Frage: Wie stelle ich sicher, dass der Upload beendet ist?
Eine STAT Abfrage an den FTP liefert nach meiner Recherche auch keine nutzbaren Ergebnisse.
Jede Datei, die vom Scanner gefunden wurde, zu "beobachten" (i.e. Größe der Datei zum Zeitpunkt A verglichen mit Größe von Zeitpunkt B) ist zu unsicher.
Gibt es FTP-Server Befehle die mir hier weiter helfen, von denen ich nichts weiss? Oder einen Workaround? Oder andere Ansätze?
[EDIT]
Wichtige Info die ich vergessen habe:
Mein Scanner läuft auf meinem eigenen System, die FTP-Server sind 'meist' entfernte Server. Da der Scanner auf unterschiedlichen System nach Dateien scannt ist mir eine einheitliche Lösung lieber, als vorher noch zu überprüfen, ob es sich um einen FTP-Server bei mir handelt.
[/EDIT]
Ich bin für jeden Tip dankbar.
Grüße
bombaaa
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 172886
Url: https://administrator.de/contentid/172886
Ausgedruckt am: 25.11.2024 um 09:11 Uhr
8 Kommentare
Neuester Kommentar
moin,
Von daher: eher
Das sind alles Würgarounds - die man nehmen kann - im idealfall hat man das Log der Maschine und wertet das aus - wenn einer per Timeout rausgeflogen ist - sollte in dem fall
Eher der sicherererer Weg sein.
Denn auch das solltest du beachten.
Gruß
Edit
Nun dann... wenn die Kiste nicht die eigene ist...
Anders wird das nix. Denn wenn es was geben würde - wäre das eine Sicherheitslücke.
am einfachsten - ui ui ui - wo fange ich an...
- jeder Account darf sich nur einmalig anmelden - versucht dein Programm sich anzumelden - und das klappert nicht - muß ein anderer bereits angemeldet sein, oder was anderes passt nicht.
- Nachteil - wurde dieser jene wegen Provider oder xyz rausgeworfen - bist du nicht sicher, ob die Datei nicht doch nochmal "Nachwuchs" bekommt und du sperrst den dann durch dein Tool.
Von daher: eher
- solange jemand an einer Datei "werkelt", kannst du die nicht umbenamsen - ergo klappert ein ren original - tempo nur dann, wenn niemand auf die datei zugreift.
Das sind alles Würgarounds - die man nehmen kann - im idealfall hat man das Log der Maschine und wertet das aus - wenn einer per Timeout rausgeflogen ist - sollte in dem fall
Jede Datei, die vom Scanner gefunden wurde, zu "beobachten" (i.e. Größe der Datei zum Zeitpunkt A verglichen mit Größe von Zeitpunkt B) ist zu unsicher.
Eher der sicherererer Weg sein.
Denn auch das solltest du beachten.
Gruß
Edit
Nun dann... wenn die Kiste nicht die eigene ist...
- kombination aus Dateigröße und doppeltem rename.
Anders wird das nix. Denn wenn es was geben würde - wäre das eine Sicherheitslücke.
du solltest im Fehlerfall eine 450 vom Server erhalten.
gruß
Eine 100%-ige Sicherheit hast du mit dem Verfahren (zweimal schauen und sehen ob sie sich verändert) nicht. Denn im ungünstigsten Fall kann es immernoch passieren, dass der "Uploader" gerade die Verbindung unterbrochen hat, während du zweimal schaust und nach dem zweiten Check geht der Upload weiter.
100%-ige Sicherheit bekommst du nur, wenn du System Zugriff auf die FTP-Server hast. Oder ein die "Fremden" etwas anderes wie FTP-Upload anbieten kannst.
Eventuell hilft dir die Art der Dateien, die auf den Server geladen werden weiter. Einige Dateiformate haben eine interne Checksumme, z.B. ZIP.
100%-ige Sicherheit bekommst du nur, wenn du System Zugriff auf die FTP-Server hast. Oder ein die "Fremden" etwas anderes wie FTP-Upload anbieten kannst.
Eventuell hilft dir die Art der Dateien, die auf den Server geladen werden weiter. Einige Dateiformate haben eine interne Checksumme, z.B. ZIP.