WebDAV バックアップと自動同期
WebDAVサーバーを通じてアカウントと環境設定を定期的にバックアップし、複数デバイスでの共有、バージョンロールバック、および災害復旧を実現します。
機能ハイライト
- ワンクリックバックアップ/復元:「インポート/エクスポート」ページでWebDAV認証情報を入力後、JSONバックアップをいつでもアップロードまたはダウンロードできます。
- 自動同期:バックグラウンドでの定期的な同期(デフォルト1時間)をサポートし、ポリシーに基づいてデータを自動的にマージまたは上書きします。
- マルチポリシーサポート:「マージ / アップロードのみ / ダウンロードのみ」を選択でき、主要デバイスと補助デバイスの異なるニーズに対応します。
- 競合マージ:マージモードでは、更新時間に基づいてアカウント、ブックマーク、および環境設定の重複を排除し、新しいデータを最大限に保持します。アカウントまたはブックマークを削除する際には削除フラグが記録され、次回の同期で古いバックアップによってそれらが復元されるのを防ぎます。
- 安全な書き込み:バックアップのアップロード時、まず同ディレクトリの一時ファイルに書き込み、読み取りと検証を行った後に正式なバックアップファイルに移動します。これにより、アップロードの中断によるリモートバックアップ破損のリスクを低減します。若坚果云在目标文件已存在时对
MOVE返回 409,扩展会先删除正式备份再重试移动。
前提条件
- アクセス可能なWebDAVサーバーを準備する:例: Nextcloud、坚果云、Alist WebDAV、NASなど。
URL / ユーザー名 / パスワードを取得し、読み書き権限があることを確認してください。- 自動同期が必要な場合、ブラウザをバックグラウンドで常駐させることをお勧めします(デスクトップ版 Chrome/Edge またはモバイル版 Kiwi)。
設定エントリ
- 拡張機能を開く → インポート/エクスポート → 「WebDAV設定」。
- 入力項目:
- サーバーアドレス:ディレクトリまたは特定のJSONファイルを指すことができます。ディレクトリを指定した場合、その下に自動的に
all-api-hub-backup/all-api-hub-1-0.jsonが作成されます。 - ユーザー名/パスワード:Basic認証に使用されます。
- サーバーアドレス:ディレクトリまたは特定のJSONファイルを指すことができます。ディレクトリを指定した場合、その下に自動的に
- 「接続テスト」をクリックして設定が正しいことを確認し、その後、「バックアップのアップロード」または「バックアップのダウンロード」を実行できます。
自動同期
同じページで「自動同期」を有効にすると、バックグラウンドで定期的に同期できます。
| オプション | 説明 |
|---|---|
| 自動同期を有効にする | webdav.autoSync スイッチに対応し、オフにすると手動バックアップのみが保持されます。 |
| 同期間隔 | 秒単位で、デフォルトは3600秒(1時間)です。 |
| 同期ポリシー | merge(マージ)、upload_only(ローカルでリモートを上書き)、download_only(リモートでローカルを上書き)。 |
| 今すぐ同期 | webdavAutoSync:syncNow をトリガーし、デバッグに便利です。同期中の場合は、後でもう一度試すようプロンプトが表示されます。 |
スケジューリングフロー
- ユーザーが設定を保存した後、
webdavAutoSyncService.setupAutoSync()はsetIntervalタイマーを再作成します。 - 同期実行時:
- まず
testWebdavConnectionを呼び出して、認証情報が有効であることを確認します。 - リモートバックアップをダウンロードします(存在しない場合は初回バックアップと見なされます)。
- ローカルのアカウントと環境設定をエクスポートし、ポリシーに基づいて最終データを決定します。
- マージ:
updated_at/lastUpdatedタイムスタンプに基づいて最新の項目を保持します。アカウントとブックマークの削除フラグは同期プロセスに含まれ、削除されたアイテムが古いリモートコピーによって復元されるのを防ぎます。 - アップロード/ダウンロードのみ:ローカルまたはリモートデータを直接選択します。
- マージ:
- マージ結果をローカルに書き戻します(
accountStorage.importData+userPreferences.importPreferencesを介して)。 - 新しいJSONを生成した後、まず同ディレクトリの一時ファイルにアップロードし、内容を読み取って検証してから、設定済みのバックアップファイルに移動します。WebDAVのターゲットがディレクトリURLの場合にのみ、デフォルトの生成パス
all-api-hub-backup/all-api-hub-1-0.jsonが使用されます。24時間以上経過した古い一時ファイルは、後続のアップロード時に可能な限りクリーンアップされます。
- まず
- 同期ステータス(成功/失敗、最終実行時間)は
WEBDAV_AUTO_SYNC_UPDATEメッセージを通じてブロードキャストされ、フロントエンドでリッスンするか、コンソールログを確認できます。
セキュリティに関する推奨事項
- WebDAV側でバックアップディレクトリ用に個別のサブアカウントまたはアクセストークンを作成することをお勧めします。
- 公共デバイスにWebDAVパスワードを保存しないでください。必要に応じて定期的に変更してください。
- 同期が失敗し、401/403のエラーが表示された場合、サーバーがBasic認証をサポートしており、
MKCOL/PUT/GETメソッドを許可していることを確認してください。
よくある質問
| 問題 | 対処法 |
|---|---|
| 接続テストの失敗 | URLにプロトコル(https://)が含まれているか、またリモート書き込みが許可されているかを確認してください。 |
| 自動同期が反応しない | ブラウザがシステムによってスリープされたか、自動同期が有効になっていない可能性があります。拡張機能を再度開いて設定を保存してください。 |
| マージ後に重複アカウントまたはブックマークが表示される | 重複する項目を手動で削除して再アップロードしてください。厳密に制御したい場合は、「アップロードのみ」ポリシーを使用してください。削除されたアカウントとブックマークは、削除フラグを通じて後続のマージに含まれ、通常は古いバックアップによって復元されることはありません。 |
| アップロード前にリモートバックアップ破損の警告が表示される | 現在のWebDAVバックアップが無効なJSONであることを示します。このデバイスのデータが完全であることを確認した後、プロンプトに従って現在のデバイスの共有データ全体を使用してリモートバックアップを再構築できます。このデバイスのデータが不完全な場合は、まずデータが完全なデバイスから完全なバックアップをアップロードまたはインポートしてください。 |
| 坚果云覆盖上传时出现 409 | 坚果云可能在正式备份文件已存在时对带 Overwrite: T 的 MOVE 返回 409。扩展会自动删除目标文件并重试移动,通常无需手动处理。 |
| JSONファイルが大きすぎる | 無効になったアカウントを定期的にクリーンアップするか、バッチでエクスポートすることをお勧めします。WebDAVの制限を超えないようにしてください。 |
