Blog

Martin Martin
10.04.2010 16:53

FileSyncService



Der FileSyncService ist ein Windows Dienst der die verschiedenste Synchronisations -Plugins laden und ausführen kann. Ich habe ein Plugin für den FileSyncService geschrieben, der Verzeichnise in eine Richtung abbilden kann.So kann man z.B. den FileSyncService einrichten, dass er ein lokales "Projekt-Verzeichnis" auf einen Netzwerkordner abbildet. Somit hat man ein Backup auf einem Server und kann gleichzeitig über die Projektordner-Kopie vom Server immer auf die Daten zugreifen, da dieser ja in den meisten Fällen über eine Internetverbindung verfügt. Da ein Dienst die synchronisation übernimmt, werden Dateien nach einer Änderung im Quellverzeichnis sofort im Zielverzeichnis upgedatet.

Das FTP Plugin ( derzeit noch buggy) kann dazu verwendet werden, dass ein lokaler Ordner mit einer FTP Resource synchronisiert wird. Man kann also ganz normal die Homepage lokal bearbeiten. Nach einer Änderung an der lokalen Homepage wird die Homepage im Internet sofort aktualisiert. Das lästige UP /Download mit einem FTP Clienten entfällt somit.

Ich habe die Osterferien genutzt um am FileSyncService weiter zu programmieren. Hier der Stand des Projektes.

-Die Gui ist noch recht verbuggt, was das Anzeigen von Informationen an geht. Z.B. kann der FileSyncService schon längst am synchronisieren sein obwohl die Gui etwas anderes sagt. 
-Beim erstellen eines SyncTasks kann man das Attribut "Tag" nicht festlegen. Dieses muss manuell in die XML Datei in C:ProgramDataGetFileSyncServiceFileSyncServiceSettings.xml hinzugefügt werden. In diesem Verzeichnis befindet sich auch die Log Datei vom FileSyncService
- Das Attribut "Tag" muss auf True gesetzt sein, wenn das FileSync.Plugin.IO.dll Plugin, Änderungen im Quellverzeichnis, sofort ins Zielverzeichnis übernehmen soll. 
- Die Log Datei des GUI Programms befindet sich in C:UsersmartinAppDataRoamingGetFileSyncGUI
-Beim FileSync.Plugin.IO.dll Plugin müssen das Ziel- und Quellverzeichnis den selben Namen haben. Dieser Fehler wird in der nächsten Version behoben.

Beispiel eines SyncTasks in der Datei FileSyncServiceSettings.xml

<?xml version="1.0" encoding="utf-8"?>
	<FileSyncServiceSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
	  <SyncTaskList> 
	   <SyncTaskList>  
	    <Assembly>C:Program FilesGetFileSyncServicePluginsFileSync.Plugin.IO.dll</Assembly>   
	   <DirectoryToSync>10.51.51.252mediaonline</DirectoryToSync> 
	     <DirectorySource>C:UsersmartinProjekteonline</DirectorySource> 
	     <ExcludedFiles />    
	  <UserName>get</UserName>    
	  <Password>pw</Password>  
	    <Topic>Projekte</Topic>    
	  <Tag>True</Tag>   
	 </SyncTaskList>
	  </SyncTaskList> 
	 <RefreshInterval>00:00:00</RefreshInterval>
	</FileSyncServiceSettings>
(Achtung die Slashes in der XML werden auto. vom Blog-System entfernt)

Das RefreshInterval legt fest, in welchem Interval der SyncTask aufgerufen werden soll. Diese Option macht nur dann Sinn, wenn man den Tag "Tag" nicht gesetzt hat.

Die ExcludedFiles werden bei der synchronisation nicht beachtet. Achtung dieses Feature wurde noch bei keinem Plugin implementiert.

Die jetztige Version ist eine Preview Version, und sollte deshalb nicht produktiv eingesetzt werden. Momentan kann man nur lokale Backups bzw. Abbilder mit dem FileSync.Plugin.IO.dll erstellen. Die Ordner im Ziel und Quellverzeichnis die synchronisiert werden müssen gleich heißen. Falls eine geänderte Datei sofort ins Zielverzeichnis kopiert werden soll muss man in der FileSyncServiceSettings.xml den Tag "Tag" mit dem Wert True hinzufügen. Siehe die Beispiel XML Datei oben.

Wenn ihr noch irgendwelche Ideen, Verbesserungsvorschläge, Erfahrungsberichte habt, lasst es mich wissen.

Hier könnt ihr die Version runterladen. (Achtung: Wenn das geladene Plugin vom FileSyncService crashed, bringt das auch den FileSyncService zum absturz. In der nächsten Version wird dieser Fehler behoben) 

Bilder von der FileSyncGUI mit dem man den FileSyncService konfigurieren kann

   

Die Startseite von der FileSyncGUI

 



lg

Martin
Schlüsselwörter: FileSyncTask, FileSyncService, Get, FileSync
zuletzt geändert: 02. Mai 2010 21:39
Link zu diesem Artikel: (in die Zwischenablage)