コンテンツへ移動

クラウドストレージ

クラウドホームは、ユーザーがすでに所有しているストレージ内の 1 つの場所です。すべてのプロバイダーは coven の同じストレージインターフェイスを通じて操作されます。プロバイダーごとに異なるのは、サインイン、設定、そして他の人やデバイスがそこへ到達する方法です。

プロバイダーサインイン自分の新しいデバイス招待する人
S3 互換アクセスキー + シークレット復元コードと、QR コードでその横に載せたアクセスキーその人用に作成したアクセスキー
DropboxOAuth、coven が保持復元コード、その後自分の Dropbox にサインインライブラリの共有フォルダーをその人のアカウントと共有
OneDriveOAuth、coven が保持復元コード、その後自分の OneDrive にサインインライブラリのフォルダーをその人のアカウントと共有
iCloud (CloudKit)Apple Account、サインイン不要復元コード、iCloud キーチェーンからも提示ライブラリの CloudKit ゾーンをその人の Apple Account と共有

S3 互換は、AWS、Backblaze B2、Cloudflare R2、Wasabi、API を話すその他すべてを含みます。設定フォームが尋ねるのはバケット、リージョン、エンドポイント、アクセスキーだけです。coven は既知のサービスをエンドポイントのホストで見分け、通信方法を補います。詳細 には任意のキープレフィックスと、既定では自動のサービスプロファイルの選択があります。coven が知らないサービスでは、設定を検出 がそのキーでバケットを調べ、見つかったものを表示します。設定は何かを保存する前にプロバイダーを確認するため、タイプミスは初回同期ではなく設定時に失敗し、bae は coven が示す理由をわかりやすい言葉で伝えます。Dropbox、OneDrive、iCloud は完全版 bae エディションにだけ存在します。baeium ビルドではコンパイルされません。

サインインとフォルダー

このセクションへのリンク

coven は Dropbox と OneDrive のサインインを自分で行うため、トークンが bae を通ることはありません。デスクトップではブラウザーがプロバイダーのページを開き、ローカルのリスナーが 1 回のリダイレクトを受け取ります。モバイルではプラットフォームのサインインシートが同じ役割を果たします。coven はトークンを OS のキーリングに保持し、プロバイダーに拒否されたときに一度だけ更新します。更新に失敗すると、静かな再試行ループではなく、同期ステータスに サインイン 操作として表示されます。

サインイン後、ユーザーはライブラリを置く場所を選びます。Dropbox では共有フォルダーです。家族のライブラリは他の人のアカウントと共有されるためで、bae はアプリフォルダーではなく Dropbox のフルアクセスを使います。共有フォルダーがまだない場合、bae は Dropbox でフォルダーを共有してからもう一度探すよう伝えます。OneDrive では任意のフォルダーで、最上位から閲覧でき、そこに新しいフォルダーを作れます。

CloudKit にはフローが不要です。coven が Apple プラットフォーム上で、サインイン済みの Apple Account として操作します。

ホームの中では、すべてのオブジェクトパスがライブラリのストア ID から始まります。coven の番号付きの変更の列、そのスナップショット、参加リクエスト、保存されたファイルです。複数のライブラリが、互いのオブジェクトに触れずに 1 つの Dropbox や OneDrive フォルダーを共有できます。

すべてのオブジェクトは暗号化され、ランダムな名前で保存されます。平文のモードはありません。bae のファイルは coven ファイルで、4 つの同期テーブルの行から参照されます。release_files、covers、artist_images、そして各 people 行のアバターです。ファイルのパスはステージングされた時点で固定されるため、アルバム名を変えてもファイルは移動しません。暗号化 を参照してください。

実際のネットワークでの動作

このセクションへのリンク

再生の読み取りは範囲指定です。プレーヤーはファイル全体ではなく、必要な暗号化チャンクを取得し、ファイルを順に再生している間は先読みします。レート制限と一時的なプロバイダーエラーは 1 つのバックオフ計画で再試行され、retry-after が与えられた場合はそれに従います。アップロードのキューは再起動後も残ります。アプリ終了で中断されたアップロードは最初からではなく途中から再開し、一時停止したアップロードは一時停止のままです。