Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Windows-Ordner mit FTP synchronisieren (https://www.delphipraxis.net/190923-windows-ordner-mit-ftp-synchronisieren.html)

Codehunter 21. Nov 2016 09:41

Windows-Ordner mit FTP synchronisieren
 
Moin!

Ich suche eine gute Lösung zum Synchronisieren eines Windows-Ordners mit einem FTP-Ordner. Dabei ist Windows IMMER die Quelle und FTP ist IMMER das Ziel. Eine Kreuzaktualisierung von Dateien findet nicht statt. Alle Änderungen am Windows-Ordner (Neue Datei, Ändern, Umbenennen, Verschieben, Löschen) sollen auf dem FTP wiederholt werden. Die Windows-Seite ist ein Server 2008 R2.

Ich habe schon zweimal Geld ausgegeben für eine kommerzielle Lösung (GoodSync und SyncBack). Beide Male ein Griff ins Klo. Entweder funktionierte die Unattended-Synchronisation als Systemdienst nicht oder aber die FTP-seitige Kopie war nicht identisch mit dem Windows-Original, es wurden Änderungen übersehen und Dateien nicht übertragen, die sich nur am Zeitstempel, nicht jedoch in der Dateigröße geändert hatten.

Wenn ich jetzt zum dritten Mal zum Chef dackeln und um Geld für ein FTP-Sync betteln darf, dann möchte ich wenigstens eine funktionierende Lösung. Darum würde ich mich über Vorschläge eurerseits freuen.

Grüße
Cody

himitsu 21. Nov 2016 10:19

AW: Windows-Ordner mit FTP synchronisieren
 
Verschieben wird bisschen schwerer zu erkennen ... also einfach als Löschen+Neuerstellen ansehn.

Delphi Starten, neuen Service erstellen, eine TIdFTP und 'nen TTimer draufpappen, die System.IOUtils einbinden und dann einfach in 'ner rekursiven Schleife über das Verzeichnis und den FTP iterieren, bei Abweichungen übertragen.
Sollte in 'ner einfachen/ausreichenden Version bestimmt in 'ner Stunde fertig sein.

Kann man auch noch mit [OH]Verzeichnis überwachen[/OH] aufmotzen.



Eventuell auch einfach das FTP als Verzeichnis/Laufwerk ins Windows einbinden?
Direkt nutzen oder jedes x-beliebige SyncTool drauf loslassen. (falls da nicht grade Terrabyte übers Netz wandern)

mm1256 21. Nov 2016 10:20

AW: Windows-Ordner mit FTP synchronisieren
 
Hallo,

was spricht gegen selber programmieren? Die einzige (etwas schwierige aber zu lösende) Aufgabe dürfte darin bestehen, geöffnete Dateien im Read-Only-Modus zu öffnen. Der Rest ist in weniger als einer Stunde zu machen.

PS: Überschneidung mit himitsus Beitrag

Codehunter 21. Nov 2016 10:46

AW: Windows-Ordner mit FTP synchronisieren
 
Zitat:

Zitat von mm1256 (Beitrag 1354262)
was spricht gegen selber programmieren?

Akuter, um nicht zu sagen katastrophaler Zeitmangel. Mit einer Stunde ist sowas sicher nicht getan, wenn man sich in puncto Indy+FTP nicht zufällig blind auskennt, was bei mir nicht der Fall ist.

Der schöne Günther 21. Nov 2016 10:49

AW: Windows-Ordner mit FTP synchronisieren
 
Also in 60 Minuten würde ich das sicher auch nicht hinbekommen. Ein "Schau mal, es kompiliert und es passiert sogar was" sicher schon. Aber nicht in dem Zustand dass ich mich für irgendein Server-Backup verbürgen könnte und ruhig schlafen kann ;-)

himitsu 21. Nov 2016 10:51

AW: Windows-Ordner mit FTP synchronisieren
 
Das ist dann natürlich etwas ungünstig.

Zitat:

Zitat von mm1256 (Beitrag 1354262)
Die einzige (etwas schwierige aber zu lösende) Aufgabe dürfte darin bestehen, geöffnete Dateien im Read-Only-Modus zu öffnen.

Backup-API oder VolumeShadowService ODER ganz einfach die Datei merken und später nochmal versuchen (man könnte auch warten, bis die Datei frei ist, aber wenn die dann paar Tage offen bleibt ...)

Codehunter 21. Nov 2016 11:55

AW: Windows-Ordner mit FTP synchronisieren
 
Zitat:

Zitat von himitsu (Beitrag 1354269)
VolumeShadowService

Huh? Mit FTP? Wär mir neu ^^

Zur Präzisierung: Auch wenn die Beschreibung so klingt, es geht nicht um ein Backup im Sinne von Datensicherheit. Vielmehr ist das Ziel ein so genannter Exposed Host, die Quelle befindet sich im sicheren Netzbereich. Der EH ist eine Linuxmaschine, da bekommt man Dateien nur per FTP, SFTP oder SSH hin geschubst. Leider kein Rootzugriff und damit auch ein Samba in Sicht.

himitsu 21. Nov 2016 12:00

AW: Windows-Ordner mit FTP synchronisieren
 
Nein, aber zum Auslesen der lokalen Verzeichnisse, bevor die Dateien zum FTP wandern. :zwinker:

Pssst, du meinst bestimmt "kein Samba".




Für den Anfang reicht da bestimmt die lokalen Dateien/Verzeichnisse alle x Zeit durchzugehn, mit dem Verzeichnis auf dem FTP querzuvergleichen und die Änderungen blind zu übertragen.
FindFirst/FindNext gibt es sowohl lokal, als auch im FTP.

* FindFirst+FindNext oder TDirectory.GetFiles + TDirectory.GetLastWriteTime
* TIdFTP.ExtListItem
* beides vergleichen (Dateinamen und Datum/Größe)
* TIdFTP.ChangeDir, TIdFTP.MakeDir, TIdFTP.Put+TIdFTP.SetModTime, TIdFTP.Delete

mm1256 21. Nov 2016 12:12

AW: Windows-Ordner mit FTP synchronisieren
 
Zitat:

Zitat von himitsu (Beitrag 1354284)
Nein, aber zum Auslesen der lokalen Verzeichnisse, bevor die Dateien zum FTP wandern. :zwinker:

Ja genau, so würde ich es auch machen. Dann noch den Kopier-Teil sourcemäßig (eigene Klasse) sauber trennen und schon ist es ziemlich egal, ob die Dateien jetzt per FTP, und später mal durch irgend eine andere Variante, auf das eigentliche Ziel transportiert werden :wink:

himitsu 21. Nov 2016 12:30

AW: Windows-Ordner mit FTP synchronisieren
 
Da es billig und schnell gehen muß:
Eine Prozedur "KopiereVerzeichnis", das vom Timer und rekursiv von sich selber aufgerufen wird. :lol::oops:


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:04 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz