Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[功能]: 通过云端备份数据文件时间戳比较,实现自动备份和恢复 #824

Closed
Yangjx96 opened this issue Jan 22, 2025 · 2 comments

Comments

@Yangjx96
Copy link

您的功能建议是否与某个问题相关?

我平时使用两个设备:A和B,但当前基于全量备份和全量恢复的机制比较麻烦,开启自动备份可能会出现两个设备的数据文件互相覆盖的问题。为了解决这个问题,可以通过本机和云盘的备份时间戳进行比较,判断备份和同步的操作策略,从而实现简单的自动同步功能。

请描述您希望实现的解决方案

在自动备份时,增加与云盘备份文件时间戳的比较过程,根据以下逻辑实现同步:

  1. 定义时间戳:

    • 云盘备份文件时间戳 (T_1)
    • 本机上次备份时间戳 (T_2)
    • 本机上次数据更改时间戳 (T_3)
  2. 比较逻辑:

    • 情况 1:若 (T_1 < T_2),说明云端备份过旧,执行备份操作
    • 情况 2:若 (T_1 = T_2),说明云端是本机的最新备份,需要进一步判断:
      • 子情况 2.1:若 (T_3 = T_2),说明本机数据无更新,不执行备份
      • 子情况 2.2:若 (T_3 > T_2),说明本机数据有更新,执行备份操作
    • 情况 3:若 (T_1 > T_2),说明云端有来自其他设备的新备份,需要进一步判断:
      • 子情况 3.1:若 (T_3 = T_2),说明本机数据未更新,执行恢复操作
      • 子情况 3.2:若 (T_3 > T_2),说明可能存在数据冲突,提醒用户手动处理

请描述您考虑过的其他方案

使用文件哈希值而非时间戳进行比较,避免时间误差的影响。

其他补充信息

No response

@magicdmer
Copy link
Collaborator

说实话,不如手动备份还原:

  1. 就目前这个定时机制,没法实时,说不定就出现关闭前定时没到的情况,失去保存
  2. 如果在设备a和b上使用,a和b都开着程序,那就是两个程序来回检查时间戳还原和备份了
  3. 如果使用过程中检测时间戳还原,那么界面刷新会闪一下重置一波,体验也不好吧
    所以webdav这个做同步功能还是太蛋疼,只能简单的做个云端备份和手动还原

PS:
其实如果这个软件的配置文件都在一个目录就好了,程序开启的时候加载一次。这样我可以直接放坚果云,让它帮我同步,解决各种冲突问题。可惜这个软件配置来自好几个地方

@kangfenmao
Copy link
Collaborator

kangfenmao commented Jan 23, 2025

看到大家对这个功能挺重视,我也会继续完善这个功能,现在把所有的需求合并到一个 Issue 方便处理和开发

#831

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants