Към съдържанието

Облачно съхранение

Облачният дом е едно място в хранилище, което потребителят вече притежава. Всеки доставчик се управлява през един и същ интерфейс за съхранение в coven; разликите между доставчиците са удостоверяването и начинът, по който второ устройство получава достъп.

ДоставчикУдостоверяванеДостъп за ново устройство
S3-compatibleAccess key + secretИдентификационни данни, включени в поканата
Google DriveOAuth (PKCE)Папка, споделена с акаунта на присъединяващия се
DropboxOAuth (PKCE)Папка, споделена с акаунта на присъединяващия се
OneDriveOAuth (PKCE)Папка, споделена с акаунта на присъединяващия се
iCloud (CloudKit)Apple ID, без входCloudKit споделяне, прието от присъединяващия се

S3-compatible покрива AWS, Backblaze B2, Cloudflare R2, Wasabi, MinIO и всичко друго, което говори този API; bucket, регион, крайна точка и префикс на ключовете се настройват, а bucket-ът се проверява преди конфигурацията да се запише, така че правописна грешка да се провали при настройване, не при първото синхронизиране. OAuth доставчиците съществуват само в пълното издание bae; компилациите на baeium ги изключват.

Влизането е поток с код за упълномощаване и PKCE, като публичен клиент. На настолни системи пренасочването пристига на loopback сървър, вързан към локален порт за единичното обратно извикване; на мобилни устройства приложението прихваща пренасочване със собствена схема вместо това. bae иска най-тесния обхват, който доставчикът предлага за задачата; при Google Drive това е достъп само до файлове, които самото приложение създава. Токените се пазят в ключодържателя на операционната система, обновяват се с разрешението за обновяване на доставчика, а отказано обновяване се показва като подкана за повторно свързване, не като тих цикъл от повторни опити.

CloudKit няма отделен поток: платформеният CloudKit драйвер, реализиран в приложението и подаден на ядрото, работи като вписания Apple ID.

Подредбата на дома

Връзка към този раздел

Вътре в дома coven подрежда потоци от changeset-и по устройство, поколения snapshot-и, записи за членство и пространства от имена за blob-ове. bae добавя три пространства от имена за blob-ове: release_files, covers и artist_images.

Начинът, по който обектите получават ключове, зависи от режима на съхранение на дома, фиксиран при създаване:

  • Непрозрачен: обектите са шифровани и се съхраняват под ключове, получени от съдържанието, които не разкриват нищо. Това е режимът с доверие в криптографията; вижте Шифроване.
  • Прегледен: обектите са открит текст на четими пътища, записани за всеки blob при качване: release_files/{artist}/{album}/{filename}, covers/{album}/{release}/cover.{ext}, artist_images/{artist}/artist.{ext}. Bucket-ът служи и като използваемо файлово дърво; размяната е без шифроване и без членство, така че прегледните домове не могат да се споделят с други хора.

Поведение при реални мрежи

Връзка към този раздел

Четенията за възпроизвеждане са по диапазони: плейърът стриймва нужните му прозорци от байтове, вместо цели файлове. Качвания над определен размер се разделят на части, когато доставчикът го поддържа. Ограниченията на честотата и временните грешки на доставчика се повтарят с нарастващо отстъпване, като се спазва retry-after, когато е даден; изтеклите OAuth токени се обновяват на място. Изходящата опашка за синхронизиране преживява рестартирания: качване, прекъснато от изход от приложението, продължава, вместо да започва отначало.