Anbindung Clouddienst (Dropbox, Google Drive etc.)

Hallo zusammen,

ich plane gerade eine Anbindung an einen Cloud Dienst (Dropbox, GoogleDrive).
Anbei mal ein paar Gedankengänge, die ich gerne zur Diskussion bereitstelle:

- Eingangsrechnungen können in einen Ordner dort abgelegt werden (ggf. müssen mehrere Unterordner betrachtet werden, zB verschiedene Jahre...)
- Bei den Banktransaktionen / Belegen kann die Datei (Eingangsrechnung zugeordnet werden)

Der Workflow sieht dann so aus, dass man eine Banktransaktion öffnet, es öffnet sich ein Dialog mit der Ordnerstruktur vom externen Cloud Dienst, wählt dann die Datei aus.
In der Banktransaktion wird dann der Pfad zur Datei in Dropbox etc. gespeichert. Oder ggf. muss auch eine ID gespeichert werden - bin mir nicht sicher, ob Dropbox wirklich den Pfad zurückgibt?
Zuvor muss der User sich natürlich authentifizieren, dass er überhaupt Zugriff auf den Ordner von Dropbox bekommt.Die Einstellung muss davor gespeichert werden (siehe Tabelle unten).

Die Frage ist wie ich das Datenbanktechnisch löse:
Folgende zwei Tabellen fallen mir ein, die ich benötige:

ExternalCloudHoster (ID, Type, apiKey, username, password)
-> Hier schon die Frage, wie authentifiziere ich mich? I.d.R. ist das doch ein API Key?
-> Was muss man datenbanktechnisch bzgl. den unterschiedlichen Provider betrachten?

ExternalCloudHosterFolder (ID, path, ExternalCloudHoster_FK)

-> Klasse um die Ordner zu speichern, auf welche man berechtigt ist

....
Weitertreiben könnte man das dann noch, dass man alle Files in dem Dropbox - Ordner ausliest und diese dann mit der eigenen Datenbank abgleicht, ob der Dateiname+Pfad / ID (oder ein sonstiger Indikator) bereits einem Beleg / Banktransaktion zugeordnet wurde.
Falls nein, erscheinen diese nicht zugeordnete Dateien eben in einer Liste...
Ebenfalls könnte ich mir vorstellen, dass man eine Übersicht der Dateien von der Dropbox direkt in der WebGui ausliest und dann auch suchen kann, und die Datei per Drag and Drop dem Beleg zuordnen kann.

Aber prinzipiell würde mich erst mal eure Meinung, auch bzgl. dem Datenbankkonzept interessieren. Insbesondere wie ich das bzgl. der Authentifizierung lösen kann, da diese ja eventuell sich unterscheiden kann (API Key oder Eingabe von Username+Passwort)...

Besten Dank
 
Passende Stellenanzeigen aus deiner Region:

Oben