Einzelnen Beitrag anzeigen

BrightAngel

Registriert seit: 13. Mär 2007
130 Beiträge
 
#5

AW: Private Online Datenbanken

  Alt 23. Mai 2017, 17:32
Im Prinzip könnte ich zum Beispiel SQLite verwenden und die Datenbankdatei dann einfach in die DropBox legen, ich bin mir aber nicht sicher ob das mit gleichzeitigem Zugriff und Synchronisierung von mehreren gleichzeitig aktiven Clients problemlos läuft (und das von Anbieter zu Anbieter ähnlich stabil ist).
Ah! In diese Richtung willst du Ja, stimmt dann hast du etwas leicht anderes vor: So weit ich weiß, sind die großen Clouds alle versionierungsfähig (oder bieten zumindest Locks oder andere Arten der Konflikterkennung an: Eine Cloud muss ja Konsistenz von Daten als Kernfeature haben; also wird ein Produkt, dass das ernsthaft anbietet um eine Lösung des Problems nicht drumrum kommen...). Bei Dropbox zum Beispiel gibt es upload_session-append_v2 und ergänzende für große Files (>150MB). Dropbox vermeidet das Thema File Locks afaik, indem sie einfach nur ganze Revisionen erlauben. Wie man an list_revisions erkennen kann wird das mit Revisions gelöst.

Bei normalen, kleinen Uploads zum Beispiel gibt es noch das Teil "WriteMode" zum Ausklappen:
Zitat:
WriteMode (union)
Your intent when writing a file to some path. This is used to determine what constitutes a conflict and what the autorename strategy is.
In some situations, the conflict behavior is identical: (a) If the target path doesn't contain anything, the file is always written; no conflict. (b) If the target path contains a folder, it's always a conflict. (c) If the target path contains a file with identical contents, nothing gets written; no conflict.
The conflict checking differs in the case where there's a file at the target path with contents different from the contents you're trying to write. The value will be one of the following datatypes:
add Void Do not overwrite an existing file if there is a conflict. The autorename strategy is to append a number to the file name. For example, "document.txt" might become "document (2).txt".
overwrite Void Always overwrite the existing file. The autorename strategy is the same as it is for add.
update String(min_length=9, pattern="[0-9a-f]+") Overwrite if the given "rev" matches the existing file's "rev". The autorename strategy is to append the string "conflicted copy" to the file name. For example, "document.txt" might become "document (conflicted copy).txt" or "document (Panda's conflicted copy).txt".
Das Unterstrichene im Quote könnte für dich interessant sein: Durch die "rev" erkennst du dann Konflikte. Das war jetzt halt leider nur exemplarisch für den Dienst Dropbox. Ich würde glaube ich dann bei solchen Strukturen immer "bulk"-Updates machen: Also lokal die Datenbank schreiben bis man "speichern" drückt und dann einmal eine neue Revision durch hochladen erstellen und dabei auf Konflikte prüfen (und diese gegebenenfalls automatisch durch merge auflösen, falls möglich). Mit Sicherheit gibt es da eventuell auch schon was im Internet, aber ich fand das Thema grade spannend

Es gibt bestimmt auch schon Bibliotheken, die den Zugriff auf mehrere Clouds unter einem Interface vereinheitlichen, aber da kenne ich mich leider nicht aus und das macht auch nicht so viel Spaß: Ich nehme an, dass diese Interfaces sich ab und zu ändern. Die von mir verlinkten Seiten stammen aus der "Dropbox API v2". Afaik betreiben solche Cloud Storage Betreiber die verschiedenen API Versionen eine Zeit lang parallel, damit man Zeit zum migrieren hat (aber das ist dann halt "Wartung").

Ganz anderes Thema, welches ganz kurz abgefrühstückt ist: Nimm das WebDAV Protokoll. Es gibt Unterstützung durch private Clouds wie Owncloud oder Nextcloud (ja, die Teilen sich die Codebasis, ich weiß; aber es gibt bestimmt noch weitere Beispiele) oder auch im NAS Umfeld zum Beispiel die Synology (die dann vielleicht auch am Netz hängt?). Das ist so weit verbreitet, dass es von verschiedener Software (aber leider nicht immer ganz "Mainstream") implementiert wird.

Das soll jetzt erstmal als erster Überblick reichen

Brighty
Do you have the email of god??? --- I have to tell him that I'm happy to be born!

Geändert von BrightAngel (23. Mai 2017 um 17:38 Uhr)
  Mit Zitat antworten Zitat