Zum Inhalt springen

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.

AnbieterAnmeldungDein eigenes neues GerätEine Person, die du einlädst
S3-kompatibelAccess key + secretWiederherstellungscode plus dein Zugriffsschlüssel, der im QR-Code daneben mitkommtEin für sie erstellter Zugriffsschlüssel
DropboxOAuth, von coven gehaltenWiederherstellungscode, dann Anmeldung bei deinem DropboxDer geteilte Ordner der Mediathek wird für ihr Konto freigegeben
OneDriveOAuth, von coven gehaltenWiederherstellungscode, dann Anmeldung bei deinem OneDriveDer Ordner der Mediathek wird für ihr Konto freigegeben
iCloud (CloudKit)Apple Account, keine AnmeldungWiederherstellungscode, auch aus dem iCloud-Schlüsselbund angebotenDie 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 Abschnitt

coven 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 Abschnitt

Im 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 Abschnitt

Lesevorgä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.