我为 VS 代码编写了一个语言服务器扩展。为了缩短启动时间,我想缓存一些全局状态。我正在努力寻找一个安全的、用户透明的位置。
我发现了以下四个选项,但似乎都不合适:
ExtensionContext.extensionPath: 这几乎是完美的。对用户显而易见,安全的沙盒空间。但是,它在扩展更新时被擦除。ExtensionContext.storagePath:这不是全局的,用户很难清除,因此很快就会使用 GB 的存储空间。ExtensionContext.globalState:将 300MB 的二进制数据放入 JSON 字典存储似乎很糟糕。%UserData%/linux/OSX 等效项:在不受控制的一般用户空间中添加和删除文件是我宁愿避免的风险。存储这些数据的合适位置在哪里?