TYPO3 - Dropbox Sync

Momentan arbeite ich auch an einem ehrenamtlichen TYPO3 Projekt, bei dem in einem internen Bereich unter anderem Dokumente zum download angeboten werden sollen. Im bestehenden System wurden diese Downloads über die TYPO3 Dateiliste und Dateiverweise  gepflegt, was bei der wachsenden Anzahl der Dateien ein großer Aufwand bedeutet.

Viel einfacher wäre es doch, wenn diese Dateien lokal gepflegt werden und dann über die Dropbox Synchronisation direkt mit einem entsprechenden Filesystem in TYPO3 abgeglichen werden könnten. Die Extension die dies bequem ermöglicht hat nun genug Reife erreicht um sie hier mal vorzustellen.

Extension installieren

Momentan ist die Extension noch nicht im TER, daher sollte zur Installation auf Github zurückgegriffen werden. Benötigt werden:

ausserdem mus die OAuth Extension für PHP installiert sein.

Die Extension ist noch nicht als offizielle Dropbox Applikation von dropbox freigegeben. Das bedeutet, es braucht einen Developer API Key um die extension verwenden zu können. Dieser wird mit den folgenden einfachen Schritten besorgt:

  1. Auf https://www.dropbox.com/developers mit dem account einloggen, mit dem später die Synchronisation stattfinden soll.

  2. Auf My Apps klicken und den Terms and Conditions zustimmen.

  3. Weiter mit "Create an App" um eine neue Dropbox app zu registrieren.

  4. Der "Application Name" auf der folgenden Seite muss global eindeutig sein. Hier ist etwas kreativität gefragt. Etwas Beschreibung ist ebenso nötig.

  5. Auf der folgenden Seite wird nun der Application Key und das Application Secret angezeigt, welche in den Konfigurationsdialog der Extension kopiert werden muss.

 

 

Extension mit dropbox authentifizieren

Clients authentifizieren sich mit Dropbox über OAuth, was den Vorteil hat, dass die eigentlichen Zugangsdaten nicht in der Client Applikation - hier der Extension - hinterlegt werden müssen. Zur Authenifikation klickt man im Dropbox Sync Modul auf den Link "Connect to Dropbox". Im nun erscheinenden Fenster an Dropbox anmelden (fals nicht schon geschehen) und die angezeigte Applikation frei schalten.

Ist das erfolgreich geschehen, zeigt der Link " Disconnect Dropbox" und erfüllt bei Klick auch diese Funktion.

Synchronisationskonfiguration erstellen

Ein Klick auf "Add Sync Config" zeigt ein Formular, mit welchem eine neue Sync Configuration erstellt werden kann. Identifier und Description sorgen zur späteren Wiedererkennung. 

Der Local Path bezieht sich relativ auf den fileadmin Ordner der Extension, das heisst ein Ordner "dropbox" wird dann nach "<typo3Path>/fileadmin/dropbox/ synchronisiert.

Der Typ zeigt die Richtung der Synchronisation, momentan ist nur "Dropbox to Local" implementiert.

Synchronisieren

Nach dem Einrichten Konfiguration kann die erste Synchronisation mit dem Link "Sync all defined folders" gestartet werden.

Ist die Synchronisation erfolgreich zeigt die Spalte "Last Sync Info" alle Informationen zur letzten Synchronisation an und listet erstellte, gelöschte, überschriebene und unveränderte Dateien auf.

Natürlich bietet die Extension auch einen Scheduler Task, mit dem man die Synchronisation periodisch einrichten kann.

Weitere Entwicklung

Alle Informationen über die synchronisierten Dateien werden in die Tabelle "tx_dldropboxsync_domain_model_filemeta" geschrieben. Dort können sie mit pt_extlist sehr einfach ausgelesen und als Downloadliste präsentiert werden. Eine entsprechende extlist Konfiguration werde ich demnächst zur Extension packen.

Ausserdem möchte ich den Prozess mit Signals ausstatten, so dass ich auf neue / aktualisierte Dateien reagieren kann um beispielsweise einen VolltextIndex aus den Dateiinhalten zu generieren.

Fals ihr mit der Extension was anfangen könnt freue ich mich natürlich über eure Rückmeldung.


 
Inhalt © Daniel Lienert 2009-2013  •  Powered by TYPO3  •  TypoScript Blogging by Fabrizio Branca  •  Impressum