Für Entwickler

ownCloud über WebDAV nutzen

Verbinde Datei-Clients und verstehe den Unterschied zwischen direktem WebDAV und der App-Sync-API.

Welchen Zugang brauchst du?#

Für eigene Datei-Clients verwendest du den WebDAV-Zugang von ownCloud mit deinem Cloud-Benutzernamen und einem eigenen App-Passwort. Browser-Apps mit Julianverse-Sync verwenden normalerweise die Sync-API mit ihrem Bearer-Token.

Ein Julianverse-Access-Token der gewöhnlichen App ist kein universelles WebDAV-Passwort. Die Sync-API begrenzt den Zugriff auf freigegebene Datenarten der betreffenden App. Ein direkter Dateizugang kann entsprechend seinen Cloud-Rechten wesentlich mehr Dateien erreichen.

App-Passwort erstellen#

  1. Melde dich unter ownCloud an, gegebenenfalls über den Julianverse-Login.
  2. Öffne die persönlichen Sicherheitseinstellungen.
  3. Erzeuge ein eigenes App-Passwort für den gewünschten Client und gib ihm einen erkennbaren Namen.
  4. Trage Cloud-Benutzername und dieses App-Passwort im Client ein.
  5. Widerrufe das App-Passwort in ownCloud, sobald der Client den Zugang nicht mehr benötigt.

Verwende den Cloud-Benutzernamen aus der Verbindung, nicht automatisch deine E-Mail-Adresse oder den Julianverse-Anzeigenamen. Ein eigenes App-Passwort je Gerät erleichtert den gezielten Widerruf.

Die Serveradresse#

Die installierte Verbindung verwendet diesen Aufbau:

https://cloud.julianverse.de/remote.php/dav/files/DEIN_CLOUD_BENUTZER/

Kodierte Benutzer- und Dateipfade müssen zu deinem tatsächlichen Konto passen. Verwende für einen Client möglichst die WebDAV-Adresse, die ownCloud selbst in seiner Oberfläche anbietet. Manche Clients erwarten nur die Serverbasis und ermitteln den restlichen Pfad selbst.

Ein lesender Test mit curl#

Die folgende Anfrage listet die Eigenschaften des angegebenen Ordners. Ersetze den Beispiel-Benutzernamen an beiden Stellen. curl fragt das App-Passwort interaktiv ab; es steht dadurch nicht im Beispielbefehl.

curl --user 'DEIN_CLOUD_BENUTZER' \
  --request PROPFIND \
  --header 'Depth: 1' \
  --header 'Accept-Encoding: identity' \
  'https://cloud.julianverse.de/remote.php/dav/files/DEIN_CLOUD_BENUTZER/'

Ein erfolgreicher PROPFIND liefert üblicherweise 207 Multi-Status mit XML. GET liest Dateien, PUT schreibt und MKCOL erstellt Verzeichnisse. Der offizielle ownCloud-WebDAV-Leitfaden erläutert die Anbindung von Datei-Clients.

App-Dateien und ETags#

Synchronisierte JSON-Dateien liegen beispielsweise unter Julianverse/startpage/notes.json oder Julianverse/APP-ID/notes.json. Vorhandene Dateien dürfen nur mit der zuvor gelesenen Dateiversion aktualisiert werden: If-Match enthält den exakten starken ETag. Zum erstmaligen Erstellen dient If-None-Match: *.

Verwende beim Lesen Accept-Encoding: identity, damit komprimierungsabhängige ETags nicht unnötig abweichen. Ein 412 verlangt eine erneute Prüfung der Versionen. WebDAV-Dateien von Hand zu verändern kann in einer geöffneten App einen Konflikt auslösen.

Umgang mit Zugangsdaten#

Gib Cloud-App-Passwörter nicht an gewöhnliche Browser-Apps weiter. Halte sie aus JavaScript-Bundles, Repositories, URLs und Logs heraus. Widerrufene Account-Sitzungen ersetzen nicht den separaten Widerruf eines ownCloud-App-Passworts. Für die eigenen Browser-Integrationen sind Account-Panel und Sync-API vorgesehen.

Markdown herunterladen