我们的扩展需要存储应该为用户的所有 VSCode 实例共享的数据。我们之前将这些数据存储在用户的主目录中。在 CodeSpaces 上,我对文档的理解是我们应该使用vscode.ExtensionContext.globalStorageUri
位置来存储数据。顺便说一句,文档引用globalStoragePath
但似乎不赞成使用globalStorageUri
.
我不清楚多个 CodeSpaces 之间的同步是如何工作的。我做了一个快速测试:
- 在 repoA 中创建一个新的 CodeSpace
- 安装我的扩展
- 检查文件是否创建于
/home/codespace/.vscode-remote/data/User/globalStorage/myExtensionId/myFileToPersist
- 在 repoB 中打开一个新的 CodeSpace(同一 GitHub 用户)
/home/codespace/.vscode-remote/data/User/globalStorage/
为空(我希望该文件夹myExtensionId
与 repoA 的其他 CodeSpace 同步)- 安装我的扩展程序(虽然我可能只有在安装扩展程序时才会延迟同步)
- 文件
/home/codespace/.vscode-remote/data/User/globalStorage/myExtensionId/myFileToPersist
是从头开始创建的(与 repoA 中的内容不同)
所以对我来说,该机制似乎globalStorage
不适用于 CodeSpaces,或者我没有正确使用 API。或者也许我有错误的期望......有人可以澄清它应该如何工作吗?什么时候同步?冲突如何解决?