Я написал расширение языкового сервера для кода VS.Чтобы улучшить время запуска, я бы хотел кешировать некоторое глобальное состояние.Я изо всех сил пытаюсь найти безопасное, прозрачное для пользователя местоположение.
- Кэш распределяется между всеми рабочими пространствами
- Он состоит из 200-300 МБ сериализованных данных
- Оно должно сохраняться между обновлениями расширения
- Расширение является кроссплатформенным
Я обнаружил следующие четыре варианта, но ни один из них не кажется подходящим:
ExtensionContext.extensionPath
: Это почти идеально.Очевидное для пользователя, безопасное место в песочнице.Тем не менее, он обновляется при обновлении расширения. ExtensionContext.storagePath
: Это не глобально, и пользователю сложно его очистить, поэтому очень быстро в конечном итоге будет использовано ГБ дискового пространства. ExtensionContext.globalState
: размещение 300 МБ двоичных данных в хранилище словарей JSON кажется плохим. %UserData%
/ linux / OSX эквиваленты: Добавление и удаление файлов в неконтролируемом общем пространстве пользователя - это риск, которого я бы предпочел избежать.
Где находится подходящее место для хранения этих данных?