云存储(Google Drive、OneDrive、同步文件夹)
为游戏云存档连接 Google Drive、OneDrive 或同步文件夹:栞申请的具体权限、状态与错误、加密,以及服务为什么会显示“尚未配置”。
- 桌面版0.2.8 已提供
- 网页版不适用
桌面客户端可以把游戏云存档保存到你选择的云端位置。连接在新界面的“设置 → 账号与同步 → 云端连接”中管理,只保存在这台电脑上。书架同步不使用这些服务,它通过你的 GalShelf 账号进行(见同步)。
服务#
- 桌面版尚未提供
- 网页版不适用
- 已实现;直接连接需要Google的 OAuth 应用注册,0.2.7 公开版本没有内置,因此暂时不能直接连接。可以改用同步文件夹。
- 桌面版尚未提供
- 网页版不适用
- 已实现;直接连接需要微软的 OAuth 应用注册,0.2.7 公开版本没有内置,因此暂时不能直接连接。可以改用同步文件夹。
- 桌面版0.2.8 已提供
- 网页版不适用
| 服务 | 栞把数据存在哪里 |
|---|---|
| Google Drive | Google Drive 中只有栞可见的隐藏数据区,不会出现在“我的云端硬盘”里。 |
| OneDrive | 你的 OneDrive 中的 应用 › GalShelf 文件夹,你可以在 OneDrive 中看到它。 |
| 同步文件夹 | 你所选文件夹中的 GalShelf-Cloud 子文件夹,例如由同步软件或 NAS 镜像的文件夹。不涉及任何注册或登录。 |
连接与断开#
- 连接会在浏览器中打开服务商自己的登录与授权页面,栞永远看不到你的密码。授权完成后,浏览器会回到这台电脑上的一个临时地址(
127.0.0.1或localhost),这个地址只在连接过程中存在。页面提示完成后,回到栞即可。 - 只保存刷新令牌,并按当前 Windows 用户加密(DPAPI)存放在这台电脑上;访问令牌只保留在内存中。
- 测试连接会写入、读取、列出并删除一个小的测试项目。
- 断开会删除这台电脑上保存的授权,已经在云端的数据会保留。对于 Google,栞还会请求 Google 撤销授权;对于 OneDrive,如需彻底撤销,请在 Microsoft 账户的“隐私 › 应用和服务”中移除 GalShelf。
权限#
栞只申请存储位置所需的最小权限:
| 服务 | 申请的权限 | 允许做什么 |
|---|---|---|
| Google Drive | https://www.googleapis.com/auth/drive.appdata | 只能访问栞自己的隐藏数据区,看不到也改不了你的其他文件。 |
| OneDrive | Files.ReadWrite.AppFolder 和 offline_access | 只能访问“应用 › GalShelf”文件夹;离线访问让你不在时也能继续备份。 |
| 同步文件夹 | 无 | 只写入所选文件夹中的 GalShelf-Cloud 子文件夹。 |
OneDrive 只支持个人微软账户;工作或学校账户需要更宽的权限,栞不会申请。
状态与错误#
每个服务都会显示已连接、未连接、尚未配置或当前不可用,以及账号、上次成功时间、上次错误、等待上传的项目数和存储空间:
- Google Drive:已用空间和总空间。
- OneDrive:只显示应用文件夹的大小(查看总配额需要更宽的权限)。
- 同步文件夹:所在磁盘的剩余空间。
错误会用日常语言说明,并告诉你下一步怎么做,例如授权过期(请重新连接)、存储已满、请求过于频繁或无法连接网络。只有真正上传并校验完成后,备份才会显示为完成。Google Drive 接口不支持条件写入:如果两台电脑恰好同时上传,两个版本都会保留并显示为冲突,不会丢失存档。
加密#
- Google 和微软会在自己的服务器上加密存储的数据,但这不是端到端加密:服务商以及任何能登录你账户的人都能读取这些文件。
- 同步文件夹中的存档不会被栞加密,安全程度取决于你的同步软件或磁盘。
- 对于云存档,你可以开启可选的端到端加密,使用只有你知道的口令。口令一旦丢失,任何人都无法恢复这些存档。详见云存档。
“尚未配置”#
Google 和微软只允许已在它们那里注册的应用连接。在这个栞安装的所有者完成应用注册并设置客户端编号之前,服务会显示尚未配置(“这个安装还没有配置…的应用注册,暂时无法连接。”),连接按钮不可用。其他功能不受影响:同步文件夹、书架同步和本地备份都照常工作。
管理员步骤#
应用注册属于桌面客户端,而不是网站。客户端会在“管理员启用步骤”中列出以下内容:
- Google Drive:在 Google Cloud 控制台创建项目并启用 Google Drive API;配置 OAuth 同意屏幕,只添加
drive.appdata权限范围(发布它,或添加测试用户);创建类型为“桌面应用”的 OAuth 客户端 ID;在环境变量或 GalShelf 数据目录下的private\cloud-oauth.env中设置GALSHELF_GDRIVE_CLIENT_ID(客户端密钥可选);重启栞后选择“连接”。 - OneDrive:在 Microsoft Entra 管理中心注册应用,支持的账户类型要包含个人微软账户;添加“移动和桌面应用程序”平台,重定向 URI 为
http://localhost;允许公共客户端流;添加 Microsoft Graph 委托权限Files.ReadWrite.AppFolder和offline_access;在同样的位置设置GALSHELF_ONEDRIVE_CLIENT_ID;重启栞后选择“连接”。
请不要把客户端密钥或令牌写进要分享的文档或消息中。