Cloud-Speicher
Das Cloud-Zuhause ist ein Ort in Speicher, den der Benutzer bereits besitzt. Jeder Anbieter wird über dieselbe Speicherschnittstelle in coven gesteuert; was sich je Anbieter unterscheidet, sind Anmeldung, Einrichtung und wie andere Personen und Geräte ihn erreichen.
Anbieter
Link zu diesem Abschnitt| Anbieter | Anmeldung | Dein eigenes neues Gerät | Eine Person, die du einlädst |
|---|---|---|---|
| S3-kompatibel | Access key + secret | Wiederherstellungscode plus dein Zugriffsschlüssel, der im QR-Code daneben mitkommt | Ein für sie erstellter Zugriffsschlüssel |
| Dropbox | OAuth, von coven gehalten | Wiederherstellungscode, dann Anmeldung bei deinem Dropbox | Der geteilte Ordner der Mediathek wird für ihr Konto freigegeben |
| OneDrive | OAuth, von coven gehalten | Wiederherstellungscode, dann Anmeldung bei deinem OneDrive | Der Ordner der Mediathek wird für ihr Konto freigegeben |
| iCloud (CloudKit) | Apple Account, keine Anmeldung | Wiederherstellungscode, auch aus dem iCloud-Schlüsselbund angeboten | Die CloudKit-Zone der Mediathek wird für ihren Apple Account freigegeben |
S3-kompatibel umfasst AWS, Backblaze B2, Cloudflare R2, Wasabi und alles andere, das die API spricht. Das Einrichtungsformular fragt nur nach Bucket, Region, Endpoint und Zugriffsschlüssel; coven erkennt bekannte Dienste am Host des Endpoints und ergänzt, wie mit ihnen zu sprechen ist. Erweitert enthält das optionale Schlüsselpräfix und eine Wahl des Dienstprofils, standardmäßig automatisch. Für einen Dienst, den coven nicht kennt, prüft Einstellungen erkennen den Bucket mit dem Schlüssel und zeigt, was es gefunden hat. Die Einrichtung prüft den Anbieter, bevor etwas gespeichert wird, damit ein Tippfehler bei der Einrichtung fehlschlägt, nicht bei der ersten Synchronisierung, und bae nennt covens Grund in klaren Worten. Dropbox, OneDrive und iCloud existieren nur in der vollständigen bae-Edition; baeium-Builds kompilieren sie heraus.
Anmeldung und Ordner
Link zu diesem Abschnittcoven führt die Anmeldung bei Dropbox und OneDrive selbst durch, daher läuft kein Token durch bae. Auf dem Desktop öffnet der Browser die Seite des Anbieters, und ein lokaler Listener empfängt die eine Umleitung; auf Mobilgeräten übernimmt das die Anmeldeansicht der Plattform. coven hält die Tokens im OS-Schlüsselbund und erneuert ein Token einmal, wenn der Anbieter es ablehnt; eine fehlgeschlagene Erneuerung erscheint im Synchronisierungsstatus als Aktion Anmelden statt als stille Wiederholungsschleife.
Nach der Anmeldung wählt der Benutzer, wo die Mediathek liegt. Bei Dropbox ist das ein geteilter Ordner, da eine Haushalts-Mediathek mit den Konten der anderen Personen geteilt wird; bae nutzt dafür vollen Dropbox-Zugriff, keinen App-Ordner. Gibt es noch keinen geteilten Ordner, sagt bae, dass einer in Dropbox geteilt und erneut gesucht werden soll. Bei OneDrive ist es ein beliebiger Ordner, von oben durchsucht, und dort kann ein neuer angelegt werden.
CloudKit braucht gar keinen Ablauf: coven steuert es auf Apple-Plattformen als der angemeldete Apple Account.
Das Layout des Zuhauses
Link zu diesem AbschnittIm Zuhause beginnt jeder Objektpfad mit der Store-ID der Mediathek: covens nummerierte Abfolge von Änderungen, seine Snapshots, Beitrittsanfragen und gespeicherte Dateien. Mehrere Mediatheken können sich einen Dropbox- oder OneDrive-Ordner teilen, ohne die Objekte der anderen zu berühren.
Jedes Objekt wird verschlüsselt und unter einem zufälligen Namen gespeichert; einen Klartextmodus gibt es nicht. Die Dateien von bae sind coven-Dateien, auf die Zeilen von vier synchronisierten Tabellen verweisen: release_files, covers, artist_images und der Avatar in jeder people-Zeile. Der Pfad einer Datei wird festgelegt, wenn sie bereitgestellt wird, sodass das Umbenennen eines Albums sie nie verschiebt. Siehe Verschlüsselung.
Verhalten in echten Netzwerken
Link zu diesem AbschnittLesevorgänge für die Wiedergabe verwenden Bereiche: Der Player holt die verschlüsselten Chunks, die er braucht, statt ganzer Dateien, und holt voraus, während eine Datei der Reihe nach spielt. Ratenlimits und vorübergehende Anbieterfehler werden nach einem gemeinsamen Wartezeitplan erneut versucht, unter Beachtung von Retry-After, wenn vorhanden. Die Upload-Warteschlange überlebt Neustarts: Ein Upload, der durch das Beenden der App unterbrochen wurde, wird fortgesetzt, statt neu zu beginnen, und pausierte Uploads bleiben pausiert.