同期のしくみ

Foliato Syncはローカルフォルダとサーバーを双方向で同期します。リアルタイム更新にはSSEを、ローカル変更の検出にはネイティブのファイルウォッチャーを使用します。

ダウンロード同期

サーバーが変更を検知すると(例:他のメンバーがファイルをアップロード)、SSEイベントを発行し、クライアントはすぐに適用します。

クライアントがオフラインだった場合、再接続時に最後のバージョンからの差分を要求し、変更分だけをダウンロードします。

アップロード同期

アプリはネイティブのファイルウォッチャー(macOSではFSEvents、WindowsではReadDirectoryChanges)でローカルフォルダを監視します。

編集中の不要なアップロードを避けるため、変更は3秒のデバウンスでまとめられます。

💡 隠しファイル(.DS_Store、Thumbs.db)や一時ファイル(.tmp、~$)は自動的に無視されます。

競合の解決

2つのデバイスが同時に同じファイルを編集した場合、サーバーはバージョンで競合を検知し409を返します。

  1. 1アプリは「(conflict — your team)」のサフィックス付きでローカルコピーを作成します。
  2. 2あなたのバージョンはその別名でフォルダに残ります。
  3. 3サーバーのバージョンは元の名前でダウンロードされます。
  4. 4比較・編集して、残したい方を再アップロードします。

競合の解決

履歴とステータス

アプリから最近の同期履歴(ダウンロード・アップロード・エラー・競合)を確認できます。

履歴とステータス