Skip to content

Plugin attachements

pmattmann edited this page Mar 6, 2013 · 2 revisions

Idee

Es soll möglich sein, zu jedem Block Anhänge hoch laden zu können. Diese werden jedoch nicht auf dem Host-Server gespeichert, sondern auf einem fremden Speicher-System.

Die externen Speicher-Systeme werden über ein generalisiertes Interface eingebunden. So soll es möglich sein/werden, verschiedene Dienstleister einzubinden (Dropbox, GoogleDrive, ...)

Angedacht ist, dass jeder User verschiedene Speicher-Dienste registrieren kann. Beim erstellen des Lagers kann der User dann einen seiner Dienste auswählen.
Wenn kein Dienst erfasst wird, kann dieser nachträglich noch ergänzt werden.

Ändern des Speicher-Dienstes für ein Lager ist eher problematisch, da nicht klar ist, wie der Erhalt der Uploads garantiert werden kann.

Interface Speicher-Dienst:

Storage::exists(filePath)       :: bool
Storage::read(filePath)         :: binary
Storage::write(filePath, data)  :: void
Storage::delete(filePath)       :: void

Datenmodell:

AttachementList

  • path

Attachement

  • list (AttachementList)
  • name
  • filePath
  • size
  • mime

IAttachementStorage

  • owner (User)

UML