Hydra启动器中的云存档系统可在用户本地计算机和Hydra云服务之间提供游戏存档数据备份和同步功能。该系统与第三方游戏存档管理器Ludusavi集成,以定位、打包和恢复各种游戏的存档数据。
有关也与云同步的相关成就系统的信息,请参阅成就系统。
云存档系统由多个组件协同工作,提供无缝的存档数据备份和恢复功能。
来源:src/main/events/cloud-save/download-game-artifact.ts1-147 src/main/events/cloud-save/upload-save-game.ts1-27 src/main/constants.ts30
当用户想要为其游戏存档创建云备份时,备份过程从UI启动。
来源:src/main/events/cloud-save/upload-save-game.ts7-26
当用户发起存档备份时
uploadSaveGame事件备份名称使用时间戳和本地化格式自动生成
来源:src/main/events/cloud-save/upload-save-game.ts19-22
恢复过程更为复杂,因为它涉及下载打包好的备份并将其适应当前用户环境。
来源:src/main/events/cloud-save/download-game-artifact.ts74-147
下载过程包括几个关键步骤
恢复过程的关键部分是在不同用户环境之间标准化路径。系统会将原始用户的家庭目录路径替换为当前用户的路径。
这确保了存档文件能够恢复到正确的位置,而不管用户名如何不同。
来源:src/main/events/cloud-save/download-game-artifact.ts24-72 src/main/helpers/index.ts33-34
云存档同步与Hydra订阅系统绑定。非订阅用户可以看到云存档功能,但不能使用。
来源:src/renderer/src/pages/game-details/sidebar/sidebar.tsx157-164 src/main/services/hydra-api.ts325-327
UI指示云功能需要订阅
来源:src/renderer/src/pages/game-details/sidebar/sidebar.tsx157-164
API确保在服务器端强制执行订阅要求
来源:src/main/services/hydra-api.ts316-328
云存档系统使用特定的路径来存储备份数据
| 路径 | 目的 |
|---|---|
userData/Backups | 所有游戏备份的根目录 |
userData/Backups/{shop}-{objectId} | 特定游戏的备份目录 |
路径在应用程序常量中定义
来源:src/main/constants.ts30 src/main/events/cloud-save/download-game-artifact.ts88
Ludusavi是一个处理实际存档文件识别和管理的第三方工具。Hydra启动器通过一个包装服务与Ludusavi集成。
Ludusavi使用清单文件来识别各种游戏的存档位置。清单URL在常量中定义。
来源:src/main/constants.ts4 src/main/events/cloud-save/download-game-artifact.ts131-136
游戏存档备份以tar归档格式存储。归档文件包含:
当恢复备份时,系统会:
来源:src/main/events/cloud-save/download-game-artifact.ts117-137
在备份和恢复操作期间,云存档系统向用户界面提供进度更新。
完成后,它会发送通知事件。
来源:src/main/events/cloud-save/download-game-artifact.ts100-104 src/main/events/cloud-save/download-game-artifact.ts132-135
该系统包含针对各种故障情况的错误处理
发生错误时,会将适当的错误事件发送到UI
来源:src/main/events/cloud-save/download-game-artifact.ts140-143
云存档系统提供了一个完整的解决方案,用于将游戏存档数据备份并恢复到云端。它利用Ludusavi进行存档文件管理,与Hydra API集成进行云存储,并通过UI提供用户反馈。该系统处理系统之间的路径差异,并需要有效的订阅才能获得完整功能。