Externer Speicher

Aus Limbas Wiki

Wechseln zu: Navigation, Suche
Diese Seite enthält Bearbeitungen, die nicht zum Übersetzen freigegeben sind.

<-- zurück zu Admin-Dokumentation / <-- zurück zur Hauptseite


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

Note: 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. 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. Per SOAP-Aufruf wird der Limbas-Server währenddessen von der neuen Datei benachrichtigt, sodass diese im DMS angezeigt und berechtigt werden kann.

Example:

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.