同期のしくみ
Foliato Syncはローカルフォルダとサーバーを双方向で同期します。リアルタイム更新にはSSEを、ローカル変更の検出にはネイティブのファイルウォッチャーを使用します。
ダウンロード同期
サーバーが変更を検知すると(例:他のメンバーがファイルをアップロード)、SSEイベントを発行し、クライアントはすぐに適用します。
クライアントがオフラインだった場合、再接続時に最後のバージョンからの差分を要求し、変更分だけをダウンロードします。
アップロード同期
アプリはネイティブのファイルウォッチャー(macOSではFSEvents、WindowsではReadDirectoryChanges)でローカルフォルダを監視します。
編集中の不要なアップロードを避けるため、変更は3秒のデバウンスでまとめられます。
💡 隠しファイル(.DS_Store、Thumbs.db)や一時ファイル(.tmp、~$)は自動的に無視されます。
競合の解決
2つのデバイスが同時に同じファイルを編集した場合、サーバーはバージョンで競合を検知し409を返します。
- 1アプリは「(conflict — your team)」のサフィックス付きでローカルコピーを作成します。
- 2あなたのバージョンはその別名でフォルダに残ります。
- 3サーバーのバージョンは元の名前でダウンロードされます。
- 4比較・編集して、残したい方を再アップロードします。
競合の解決
履歴とステータス
アプリから最近の同期履歴(ダウンロード・アップロード・エラー・競合)を確認できます。
履歴とステータス