Alfresco Sync mit eDrive

EDrive ist ein Sync-Server, der mittels CMIS Alfresco-Repositories mit einem lokalen Desktop-PC synchronisieren kann. Siehe http://sourceforge.net/projects/eoss-edrive/?source=directory

Mittlerweile hat sich aber herausgestellt, dass der Entwickler von eDrive die Entwicklung nicht fortsetzt. Auch hat eDrive einige schwächen wenn es um die Synchronisation auf mehrere verschiedene Endgeräte geht. EDrive eignet sich nach meinen gemachten Erfahrungen lediglich dazu, das Alfresco-Repository auf EIN Endgerät zu synchronisieren.

Installation und Konfiguration von eDrive

  • eDrive herunterladen http://sourceforge.net/projects/eoss-edrive/?source=directory
  • Zip entpacken und an die gewünschte Installations-Stelle verschieben
  • ../bin

    beinhaltet die Start-Scripts für Windows und Linux

  • ../config

    beinhaltet alle konfig-Files inkl. Dokumentation

  • ../lib

    beinhaltet alle java-klassen

Konfiguration

Als erstes muss eDrive konfiguriert werden. Dazu editieren wir die Datei

../config/eDrive.pass

einen Passphrase erfassen

../config/eDrive.json

Die genauen Konfigurations-Möglichkeiten bitte dem readme entnehmen

Beispiel:
Hier werden zwei Verzeichnisse des Alfresco-Repositories Bi-Direktional gesyncht.

  • “/Benutzer-Homes/user/folder” nach “D:/sync”
  • “/Sites/office/documentLibrary/Transfer” nach “D:/transfer”
{
    "edrive": [
        {
            "unfilingSupported": false,
            "repositoryRoot": "\\Benutzer-Homes\\user\\folder",
            "repositoryPassword": "passwort",
            "outboundSyncSeconds": 20,
            "syncDirection": "BI_DIRECTIONAL",
            "repositoryUrl": "http://server.ch/alfresco/cmisws",
            "repositoryId":"564e78b1-5c15-14b8-513s-12354f1567s4",
            "repositoryUserName": "ralph",
            "paths": [
                {
                    "syncing": true,
                    "path": ""
                }
            ],
            "ignorePatterns": [
                {"base64":"LipbXFxcL11cLnN2bltcXFwvXS4q"},
                {"base64":"LipbXFxcL11cLnN2bg=="}
            ],
            "name": "My Sync",
            "fileSystemRoot": "D:\\sync",
        }
        {
            "unfilingSupported": false,
            "repositoryRoot": "\\Sites\\office\\documentLibrary\\Transfer",
            "repositoryPassword": "passwort",
            "outboundSyncSeconds": 20,
            "syncDirection": "BI_DIRECTIONAL",
            "repositoryUrl": "http://server.ch/alfresco/cmisws",
            "repositoryId":"564e78b1-5c15-14b8-513s-12354f1567s4",
            "repositoryUserName": "user",
            "paths": [
                {
                    "syncing": true,
                    "path": ""
                }
            ],
            "ignorePatterns": [
                {"base64":"LipbXFxcL11cLnN2bltcXFwvXS4q"},
                {"base64":"LipbXFxcL11cLnN2bg=="}
            ],
            "name": "My Transfer",
            "fileSystemRoot": "D:\\transfer",
        }
    ]
}

Start

Wenn eDrive installiert und konfiguriert ist, kann diese über

../bin/edrive.bat

gestartet werden.

Installation Windows Service

Damit eDrive bei jedem Windows-Start gleich mit gestatet wird, muss eDrive als Service installiert werden. Dazu verwende ich Apache Commons Deamon. Commons Deamon liefert einen Wrapper, der beim Windows-Start ein Java-Programm ausführen kann. Dazu muss der Wrapper als Service installiert werden:

  • Download Apache Commons Deamon: http://commons.apache.org/proper/commons-daemon/download_daemon.cgi
  • Entpacken und prunsrv.exe in das Installationsverzeichnis von eDrive
    ../bin

    kopieren

  • in ../bin eine weitere bat-Datei “RegisterService” erstellen und mit folgendem befüllen
    prunsrv.exe //IS//eDrive --Install="C:\pfad\prunsrv.exe" --Jvm=auto --Startup=auto --StartMode=jvm --Classpath="./;../lib/*;../config" --StartClass=com.eossonline.edrive.service.EDrive --JvmOptions=-javaagent:../lib/aspectjweaver-1.7.2.jar ++JvmOptions=-Dorg.slf4j.simpleLogger.defaultLogLevel=debug ++JvmOptions=-Dedrive.config.file=../config/eDrive.json ++JvmOptions=-Dedrive.server.port=4444 ++JvmOptions=-Dedrive.passphrase.file=../config/eDrive.pass ++JvmOptions=-Dedrive.multicast.ip=224.0.0.1 ++JvmOptions=-Dedrive.multicast.port=4445 --DisplayName="eDriveService"
  • Das ausführen der Bat-Datei registriert eDrive als Service (eDriveService) und ist ab sofort unter “Dienste” verfügbar.
  • Unter ../bin eine weitere bat-Datei “UnRegisterService” und mit folgenden Inhalt befüllen:
    prunsrv.exe //DS//eDrive
  • Dies meldet den Service unter den Windows-Diensten wieder ab.

Installation Linux Deamon

  • Start-Script für init.d erstellen:
#!/bin/sh

# $Id: $
# /etc/init.d/edrive: start edrive and stop edrive
set -e

# include init functions so we can use functions like
# log_daemon_msg to output messages instead of echo
. /lib/lsb/init-functions

# Date
NOW=$(date +"%Y-%m-%d")
# Logfile
LOGFILE="edrive-$NOW.log"

# start method
start_edrive() {
log_daemon_msg “Starting edrive…“
cd /home/ralwet/myPrograms/edrive-0.1.3/bin
# ./edrive.sh >> /home/ralwet/myPrograms/edrive-0.1.3/$LOGFILE
./edrive.sh
return
}

# stop method
stop_edrive() {
log_daemon_msg “Stopping edrive…“
jps -l | grep com.eossonline.edrive.service.EDrive | cut -d ' ' -f 1 | xargs -rn1 kill
return
}

# now let run the functions
case "$1" in
start)
start_edrive
;;
stop)
stop_edrive
;;
restart)
stop_edrive
sleep 10
start_edrive
;;
*)
log_daemon_msg “Usage:{start|stop|restart}“
exit 1
;;
esac
exit 0
  • Mit Ausführ-Rechten nach
    /etc/init.d/edrive

    kopieren

  • Deamon mit
    sudo update-rc.d edrive defaults

    registrieren.