クラウドバックアップと自動同期
サービス選択、同期データの範囲、同期方式、自動同期スイッチは自動保存されます。同期間隔は入力欄を離れると保存されます。接続情報と暗号化パスワードも入力欄を離れると自動保存され、空欄への変更も保存されます。必要な設定は同期実行時に確認されます。
WebDAV または GitHub Secret Gist を選び、共有データの定期バックアップ、複数端末間の同期、データ復旧に利用できます。
主な機能
- バックアップと復元:「インポート/エクスポート」ページで同期サービスを選び、JSON バックアップをアップロードまたはダウンロードできます。
- 自動同期:バックグラウンドで定期的に同期し(既定は 1 時間)、選択した方式でデータを統合または上書きします。
- 3 つの同期方式:「統合 / アップロードのみ / ダウンロードのみ」を端末の役割に応じて選べます。
- 競合時の統合:更新日時が新しいアカウント、ブックマーク、設定を優先します。アカウントやブックマークの削除記録も同期し、古いバックアップによる復活を防ぎます。
- WebDAV の書き込み検証:同じディレクトリの一時ファイルへアップロードし、読み戻して検証した後、正式なバックアップへ移動します。坚果云(Nutstore)が既存ファイルへの
MOVEに 409 を返した場合は、移動先を削除して再試行します。 - GitHub Secret Gist:GitHub Token で既存の Secret Gist に接続するか、新しい限定公開 Gist を作成できます。Gist へのアップロードは常に暗号化されます。
前提条件
- WebDAV(Nextcloud、坚果云、Alist WebDAV、NAS など)または GitHub Secret Gist を用意します。
- WebDAV には読み書き権限のある URL・ユーザー名・パスワード、Gist には GitHub Token とバックアップ暗号化パスワードが必要です。
- 自動同期を使う場合は、ブラウザーのバックグラウンド実行を許可してください。ブラウザーを終了している間や端末のスリープ中は、定期実行が正常に動作しません。
設定方法
- 拡張機能 → インポート/エクスポート → クラウド同期 を開きます。
- 同期サービスで WebDAV または GitHub Secret Gist を選びます。
- WebDAV の場合は次を入力します。
- サーバー URL:ディレクトリまたは JSON ファイルを指定します。ディレクトリの場合、その配下の
all-api-hub-backup/all-api-hub-1-0.jsonを使用します。 - ユーザー名/パスワード:Basic 認証の資格情報です。
- サーバー URL:ディレクトリまたは JSON ファイルを指定します。ディレクトリの場合、その配下の
- 接続テスト を実行し、その後にバックアップをアップロードまたはダウンロードします。
GitHub Secret Gist
- GitHub で Personal Access Token を作成します。fine-grained Token に Gists: Read and write のみを付与する方法を推奨します。classic Token は
gistスコープが必要です(GitHub Gist API の権限説明を参照)。Token は現在のブラウザー内に保存され、バックアップには含まれません。 - GitHub Secret Gist を選び、Token を入力します。既存の Gist は ID または
https://gist.github.com/...のリンクを入力します。新規作成時は空欄にできます。 - 暗号化パスワードを設定し、Secret Gist にアップロード をクリックします。ID が空欄の場合は
public: falseの限定公開 Gist が自動作成され、all-api-hub-backup.jsonに暗号化された内容が保存され、ID が自動入力されます。次回以降のアップロードでは同じ Gist が更新されます。 - 既存の Gist は 接続テスト で、空でないバックアップファイルを含む読み取り可能な Secret Gist か確認します。インポートと同期では復号と形式の検証も行うため、接続テストの成功だけではインポート可能とは限りません。
Secret Gist は一覧に公開されないだけで、アクセス制御ではありません。Token、暗号化パスワード、Gist リンクを保護し、Token をスクリーンショットやバックアップへ含めないでください。手動 JSON エクスポートにも Gist の Token、ID/リンク、暗号化パスワードは含まれません。新しい端末では Gist を再設定してください。既存の WebDAV の手動エクスポート動作は変わりません。
自動同期
同じページで 自動同期 を有効にすると、選択中のサービスを定期的に同期します。
| 項目 | 説明 |
|---|---|
| 自動同期を有効化 | WebDAV と Gist は設定を共有し、選択中のサービスだけが実行されます。無効でも手動バックアップと即時同期は利用できます。 |
| 同期間隔 | 秒単位。既定は 3600 秒(1 時間)、最短は WebDAV が 60 秒、Gist が 300 秒(5 分)です。 |
| 同期方式 | 統合、アップロードのみ(ローカルでリモートを上書き)、ダウンロードのみ(リモートでローカルを上書き)。即時同期にも保存済みの方式が適用されます。 |
| 今すぐ同期 | 同期を 1 回実行します。実行中の場合は完了後に再試行してください。保存中の変更が完了してから同期を開始します。 |
同期の流れ
- 設定を保存すると、選択中のサービスに合わせてバックグラウンドの定期実行を更新します。
- 同期時には次の処理を行います。
- サービスへの接続と資格情報を確認します。
- リモートバックアップを取得します。WebDAV のバックアップが存在しない場合は、方式に応じて初回バックアップを実行できます。Gist のファイルがない、または空の場合は自動同期を停止するため、先に手動アップロードで初期化してください。
- ローカルのアカウントと設定をエクスポートし、方式を適用します。
- 統合:
updated_at/lastUpdatedが新しい項目を優先します。削除記録も統合し、古いコピーによるアカウントやブックマークの復活を防ぎます。アカウントの競合は項目ごとではなく、アカウント全体で最終更新を優先する LWW 方式です。新しいアカウントはチェックイン設定も含めて古いアカウントを置き換えます。 - アップロード/ダウンロードのみ:それぞれローカルまたはリモートのデータを使用します。
- 統合:
- 統合とダウンロードのみでは結果をローカルへ反映し、統合とアップロードのみではバックアップをアップロードします。
- WebDAV は一時ファイルを検証して正式ファイルと置き換えます。Gist は書き込み前に再取得してリビジョンを比較し、アップロード後も読み戻して内容を検証します。
- 設定ページで成功・失敗の状態と最終実行時刻を確認できます。
バージョン互換性と複数端末の更新
現在のバックアップ形式は V4 です。旧 V6 アカウントのチェックイン設定は V7 に更新されます。V1~V3 のバックアップは引き続きインポートできます。直前の V3 リーダーは V4 を可能な限り拒否し、古い構造での上書きを防ぎますが、不明なバージョンも許容して解析するさらに古いクライアントの安全性は保証されません。
自動同期を一時停止し、同じバックアップを共有するすべての端末を V7 アカウント対応版へ更新してから同期を再開してください。V6 と V7 のクライアントが同じバックアップへ同時に書き込む構成には対応しません。アカウント全体の LWW により、旧クライアントが V7 のチェックイン設定を V6 アカウントで上書きする可能性があります。旧版へ戻す場合は他の端末の同期を停止し、別のバックアップを残してください。
Gist の書き込み前の確認でリビジョンの変更を検出すると、競合を報告してそのアップロードを停止します。時間をおいて再同期してください。この確認はベストエフォートであり、原子的な条件付き書き込みではありません。確認後に別の端末が書き込む可能性は残るため、できるだけ同期時刻をずらしてください。
自動チェックインと複数端末
アカウントと設定は WebDAV または Gist で同期できますが、当日の実行状態、最近の結果、ブラウザーのアラームは端末間で共有されません。複数端末で毎日のスケジュールを有効にすると、重複してチェックインする可能性があります。避けたい場合は 1 台だけで定期チェックインを有効にしてください。
セキュリティのヒント
- WebDAV のバックアップディレクトリ専用アカウントやアクセストークンを用意し、GitHub Token には必要な Gists 権限のみを付与してください。
- 公共の端末に WebDAV パスワードを保存せず、必要に応じて変更してください。
- WebDAV で 401/403 が発生した場合は資格情報を確認し、Basic 認証と
MKCOL/PUT/GET/MOVE/DELETEに対応しているか確認してください。
よくある質問
| 問題 | 対処方法 |
|---|---|
| WebDAV の接続テストに失敗する | URL にプロトコル(https://)が含まれ、リモートへの書き込みが許可されているか確認します。 |
| 自動同期が動かない | 自動同期が有効で、サービスの設定がすべて完了しており、ブラウザーが休止していないか確認します。拡張機能を開き直し、設定を保存して、同期ステータスのエラーを確認してください。 |
| 統合後にアカウントやブックマークが重複する | 重複を削除して再アップロードします。厳密に管理したい場合は「アップロードのみ」を利用します。削除記録により、通常は古いバックアップによる復活を防げます。 |
| アップロード前にリモートバックアップの破損が表示される | 既存の WebDAV バックアップが有効な JSON ではありません。この端末のデータが完全なら、確認画面に従って全共有データで再作成できます。不完全なら、完全な端末からアップロードするか、完全なバックアップを先にインポートしてください。 |
| Gist のバックアップファイルがない、または空 | 自動同期とインポートを停止し、空のバックアップとしてローカルを消去することはありません。この端末のデータが完全なら、手動アップロードで上書きを確認し、既存の Secret Gist を初期化できます。 |
| Gist の内容が破損している、または形式に互換性がない | インポートや同期を停止します。all-api-hub-backup.json と暗号化パスワードを確認し、バックアップを修復して再試行してください。不完全なローカルデータで上書きしないでください。 |
| Gist が 401/403/404 またはレート制限を返す | 401 は Token の有効期限、403 は Gists 権限、404 は Gist ID や削除の有無を確認します。レート制限は表示された再試行時刻まで待ってください。 |
| 坚果云の上書きアップロードで 409 が発生する | 移動先が存在すると、Overwrite: T 付きの MOVE が拒否されることがあります。拡張機能が移動先を削除して自動的に再試行します。 |
| JSON ファイルが大きすぎる | 不要なアカウントを整理し、サービスの容量制限を超えないようにします。分割した手動エクスポートは個別の保管に使えますが、自動同期では選択データ全体のバックアップをアップロードします。 |
