Externer Speicher
Limbas bietet die Möglichkeit, einzelne Ordner so zu konfigurieren, dass Dateien darin nicht auf dem Limbas-Server gespeichert werden, sondern in einem externen Speicher, wie z.B. einer Cloud.
Externer Speicher
Für jeden externen Speicher kann dabei eine Beschreibung angegeben werden, die nach dem Upload im Titel der Datei angezeigt wird. Der Super-Admin kann diese im gewünschten Ordner über das Kontextmenü Extras→Einstellungen→external storage auswählen und somit festlegen, dass zukünftige Dateien dieses Ordners in den gewählten Speicher hochgeladen werden.
Notiz:
Die Einstellung betrifft nur Dateien die ab der Umstellung hochgeladen werden. Bereits im Ordner befindliche Dateien werden nicht auf den externen Speicher übertragen.
Services
Anbieter eines externen Speichers (z.B. Clouds) werden im Folgenden als Services bezeichnet. Da die Kommunikation mit diesen von Service zu Service unterschiedlich ist, wird für jeden Service eine eigene PHP-Klasse LmbExternalStorage_{ServiceName} erwartet. Bereits implementiert sind die Services Dropbox, OwnCloud und SeaFile. Für eine Anbindung zur NextCloud kann hier auch OwnCloud ausgewählt werden, da sie die gleiche Schnittstelle haben.
Möchte man einen eigenen Service anbinden, muss per Extension eine neue Klasse LmbExternalStorage_{NeuerServiceName} angelegt werden, welche von der bestehenden Klasse LmbExternalStorage erben, und damit die Methoden uploadFile, downloadFile und createDownloadLink implementieren muss. In das Feld Classname wird dann {NeuerServiceName} eingegeben.
Konfiguration
Ein Service benötigt zur Authentifizierung meist ein Token oder eine Nutzername-Password-Kombination. Manchmal wird zusätzlich auch direkt ein Ordner-Pfad erwartet. Informationen, die ein Service benötigt, werden im Feld Config als JSON eingetragen. Die Daten werden im Konstruktor dann direkt an die jeweilige Klasse übergeben. Durch dieses Design können bequem mehrere Accounts des gleichen Services genutzt werden.
External Access URL
Ist das Feld External Access URL gesetzt, wird der Datei-Transfer von Browser zu Cloud nicht vom Limbas-Server verwaltet, sondern von dem angegebenen Server. Das kann aus Sicherheits-/Bandbreitengründen sinnvoll sein. Per SOAP-Aufruf wird der Limbas-Server währenddessen von der neuen Datei benachrichtigt, sodass diese im DMS angezeigt und berechtigt werden kann.
Beispiel:
Der Wert http://192.168.1.42/public/ führt zu folgenden zwei Szenarien: Upload Wählt ein Nutzer im DMS oder in einem Limbas-Datensatz eine Datei zum hochladen aus, wird diese vom Browser direkt an das Skript http://192.168.1.42/public/upload.php geschickt. Die Datei wird in den externen Speicher geladen und der Limbas-Server wird von dem Erhalt der Datei benachrichtigt. Download Öffnet ein Nutzer im DMS oder in einem Limbas-Datensatz eine Datei zur Vorschau, wird der Aufruf mit Datei-ID und Berechtigungstoken zu http://192.168.1.42/public/download.php weitergeleitet. Das Skript lädt die Datei aus dem externen Speicher und stellt sie dem Nutzer zur Verfügung.
Im Ordner limbas_src/extra/explorer/external/proxy/ befinden sich beispielhaft implementiert die oben erwähnten Dateien upload.php und download.php, sowie die von beiden genutzte externalStorage.lib, welche auf den externen Server kopiert und angepasst werden können. In den Dateien upload.php und download.php müssen noch jeweils 3 Pfade angepasst werden, unter anderem auf die für SOAP-Zugriffe zuständige include.lib. In dieser Datei muss noch der Pfad zur Konfigurationsdatei config.lib gesetzt werden.
Public cloud
Das Flag Public cloud kann gesetzt werden, wenn eine Veröffentlichung einzelner Dateien mit einem festen Link über Limbas hinaus gewünscht ist. Beim Upload einer Datei wird dafür von dem externen Speicher (Cloud) einmalig ein öffentlicher (nicht-geschützter) Download-Link für die jeweilige Datei generiert und in Limbas gespeichert. Beim Download der Datei aus Limbas wird der Nutzer zu diesem Download-Link weitergeleitet und kann diesen weitergeben.
Zusammenfassung Einrichtung
Hier einmal Schritt für Schritt zusammengefasst wie die Einrichtung mit bspw. der Nextcloud-Demo funktioniert:
- In Nextcloud wird ein Ordner erstellt, in dem die Dateien abgelegt werden sollen. Hier heißt er „Limbas“.
- In Limbas unter Admin -> Externer Speicher wird ein neuer Eintrag angelegt (Als Ordner wird jetzt der gerade erstellte Ordner „Limbas“ ausgewählt)
- Session reset (oben rechts).
- Im DMS wird jetzt der Ordner geöffnet, dessen Dateien in der Nextcloud gespeichert werden sollen. Wichtig ist zu wissen, dass bestehende Dateien nicht automatisch synchronisiert werden, sondern nur Dateien die ab jetzt hinzugefügt werden.
- In dem geöffneten Ordner wird unter Extras -> Einstellungen der soeben angelegte Nextcloud-Eintrag ausgewählt. Wichtig zu wissen: Es wird dabei der Ordner in dem man sich gerade befindet verknüpft und nicht der Ordner, den man im DMS selektiert hat.
- Im DMS oben links unter Datei -> speichern, danach wieder einen Session Reset (oben rechts).
- Jetzt kann eine neue Datei hochgeladen werden. Sie wird dann automatisch in die Nextcloud hochgeladen statt auf dem Limbas-Rechner gespeichert zu sein.