Skip to content

Differential ZIP BackupでVault同期できるようになりました

みなさんお久しぶりです。きみのぶです!
本当に久しぶりに筆をとりました。

さて、今回、普段は影の薄い拙作プラグイン Differential ZIP Backup のお話です。

このプラグイン、ものすごく地味かつ、あまり告知もしていなかったので、もう一度紹介しておきますね。

このDifferential ZIP Backup、Vaultの、前回のバックアップから変更のあったファイルをZIPに固まることによって、差分バックアップを取れるプラグインです。
また、どのバックアップファイルにも目録になるファイルが付いているので、一つひらけば、それ以前にバックアップされた任意のファイルがどのZIPファイルに入っているかわかるという優れものなのです。(また自画自賛しちゃいますが)

なんせ完全にimmutableかつ、一つ一つがファイルとして成立しているので、バックアップとして安心。
しかも、バックアップ先にはAWS S3やCloudflare R2などのオブジェクトストレージも使用できるので、Self-hosted LiveSyncのドッグフーディングにメインのVaultのバックアップを取るのに最適です。[1]

で、今回はこれを大更新しました。

v0.0.13で実装された機能のメインは

  • 更新日時がバックアップ中のファイルより新しいファイルのみバックアップ
  • 更新日時がローカルより新しいファイルのみリストア

です。これに伴って、下記の機能も増えています。

  • 非破壊バックアップ
  • 削除も含めたリストア
  • 複数ファイルを選択しやすいリストア

あと、ついでですが、Self-hosted LiveSyncのように設定をクリップボードにコピーし、別の端末でペタリと復元する機能も実装してます。

Q:これで何ができるの?

A: S3やR2などのオブジェクトストレージを使用して、Vaultの簡易的な同期ができます。

今までは、ファイルのハッシュが完全に異なるファイルをすべてバックアップしていて、かつ、リストア機能は選択されたファイルを上書きしていました。
リストアも面倒で[2]したしね。

残念ながら競合解決なんかは実装していないですが、その分シンプルな操作感になっていると思います。

やり方は簡単。

  1. Create Differential Backup Only Newer Files で変更をバックアップ。
  2. Fetch all new files from the backups を行って、変更されたファイルを取得すると、最新の状態がリストアされます。

ただし、どちらも変更があったファイルは上書きされてしまうので、適宜Create Differential Backup でバックアップしてくださいね。

※これは今後、新しいかリモートに歴がないファイル に改良した方がいいですね。

ほかの用途としては、Self-hosted LiveSyncの初期同期は少し時間がかかるので、こちらでVaultをリストアしてから、LiveSyncを有効にする、みたいな方法にも活用できます。

Q: ほかには?

今回から特定のフォルダの特定のファイルのみをリストアできます。(Restore from backups
なんか設定ミスをやっちゃった場合などに活用してください。僕はめっちゃ使います。

(LiveSyncのファイルを復元しようとする様)
screenshot


  1. たまに壊してるんですよね。Vault。 ↩︎

  2. これはわざとでしたが、同期のためには多少面倒すぎる仕様でした。 ↩︎