如何在Chrome扩展程序中从磁盘写入和读取文件?

时间:2019-08-24 19:35:31

标签: javascript file google-chrome-extension

仅在出现XY问题时对方案进行评论:
我需要从服务器请求一些json文件,但我想以某种方式将其缓存以避免再次请求。

我可以使用下载api创建一个json文件,但这有两个问题:

  1. 我不知道如何指定自定义文件夹(我想我可以使用chrome.downloads.download API和saveAs = true来解决此问题)
  2. 我不知道如何读取该文件(出于安全原因,可能无法读取?) https://developer.chrome.com/extensions/downloads

我本以为可以在chrome扩展文件夹中写东西,因为我们可以从那里读取文件,但是我找不到方法,a comment说这是不可能的,但是从2011年开始,也许现在有某种方法可以解决这个问题?

我也可以尝试使用chrome.storage保存它,但是我的json确实很大,每个json有3MB,我有100多个,不确定chrome.storage是否可以毫无问题地管理它,它在这里说5MB:{{ 3}},但是我们可以添加unlimitedStorage权限来避免该限制,问题是我不确定这样做的安全性,也许还有更好的解决方案。

1 个答案:

答案 0 :(得分:2)

由于编写文件的主要目的是缓存网络请求并控制Web服务器,因此建议您利用浏览器的HTTP缓存,而不要尝试创建自己的缓存层。

要开始使用,请确保您的JSON文件带有Cache-Control标头。此标头告诉浏览器资源要使用的缓存策略。以下MDN文章是学习更多有关缓存控制指令的重要资源。一旦知道了要使用的缓存策略,就需要查阅Web服务器的文档以获取有关如何配置Web服务器以使用这些设置的详细信息。