Externer Speicher

Geschätzte Lektüre: 4 Minuten

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.

ExternalStorage.png

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.

ExternalStorageSelect.png

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.

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:

  1. In Nextcloud wird ein Ordner erstellt, in dem die Dateien abgelegt werden sollen. Hier heißt er „Limbas“.
  2. In Limbas unter Admin -> Externer Speicher wird ein neuer Eintrag angelegt (Als Ordner wird jetzt der gerade erstellte Ordner „Limbas“ ausgewählt)
  3. Session reset (oben rechts).
  4. 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.
  5. 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.
  6. Im DMS oben links unter Datei -> speichern, danach wieder einen Session Reset (oben rechts).
  7. Jetzt kann eine neue Datei hochgeladen werden. Sie wird dann automatisch in die Nextcloud hochgeladen statt auf dem Limbas-Rechner gespeichert zu sein.