小编Tho*_*oby的帖子

在哪里存储 vscode 扩展的全局二进制数据

我为 VS 代码编写了一个语言服务器扩展。为了缩短启动时间,我想缓存一些全局状态。我正在努力寻找一个安全的、用户透明的位置。

  • 缓存在所有工作区之间共享
  • 它由 200-300MB 的序列化数据组成
  • 它应该在扩展更新之间保持不变
  • 扩展是跨平台的

我发现了以下四个选项,但似乎都不合适:

  1. ExtensionContext.extensionPath: 这几乎是完美的。对用户显而易见,安全的沙盒空间。但是,它在扩展更新时被擦除。
  2. ExtensionContext.storagePath:这不是全局的,用户很难清除,因此很快就会使用 GB 的存储空间。
  3. ExtensionContext.globalState:将 300MB 的二进制数据放入 JSON 字典存储似乎很糟糕。
  4. %UserData%/linux/OSX 等效项:在不受控制的一般用户空间中添加和删除文件是我宁愿避免的风险。

存储这些数据的合适位置在哪里?

visual-studio-code vscode-extensions

9
推荐指数
1
解决办法
2094
查看次数