0

我可以在下面的铬存储API页面阅读,我们可以存储字符串值在铬存储按键。有没有办法存储铬存储中的密钥文件?我们可以存储文件在铬存储,而不是字符串

https://developer.chrome.com/apps/app_storage

+1

Chrome的存储提供了遵循同样的标准为localStorage的API,因此你应该检讨这个问题已经被回答https://stackoverflow.com/q/4940586 – davidcondrey

+0

感谢您的链接。与Chrome存储相比,LocalStorage的空间有限。将Chrome存储中的base64编码文件字符串存储在密钥中是不错的主意。文件数量将以千计,总空间可能超过5 GB。 您提到的上述链接建议使用File API,如果我上面提出的建议不是一个好主意,我相信这是正确的路径。 – user3191524

+0

由于文件不会将文件转换为字符串,所以文件API的命令速度会更快。 – wOxxOm

回答

1

chrome.storage存储数据作为它给存储的值的JSON字符串化。所以,是的,如果您将文件转换为可以转换为JSON的格式(例如通过JSON.stringify()),则可以存储该文件的内容。如果您试图存储在chrome.storage中的值无法转换为JSON,则无法存储它(例如DOM元素)。 chrome.storage本质上不关心数据表示什么,只是它可以被JSON字符串化。

如您在评论中所述,如果在chrome.storage中存储总共超过5GB的数千个不同的“文件”是一个好主意,那么答案是:“NO!”。

如果您正在寻找替代品,那么一些在Can you use HTML5 local storage to store a file? If not, how?

+0

但在铬的存储,我们可以通过在浏览器扩展程序的清单设置属性“unlimitedStorage”存储无限的数据 https://developer.chrome.com/apps/declare_permissions#unlimitedStorage 那么,为什么你会相信有5 GB的Chrome存储中的数据不是一个好主意?你能解释一下吗? 关于在Chrome存储中存储文件;我可以将它们存储为blob或bufferdata格式,而不是json;所以我认为应该可以从Chrome存储中获取blob,并以某种方式将blob转换为文件。请让我知道,如果它不是一个好主意? – user3191524

+0

Chrome转换为JSON,期间。您不必自行转换为JSON,只需将* * *转换为JSON即可,因为Chrome会将它们转换为JSON。 – Makyen

+0

如果你真的对为什么感兴趣,那么应该[另一个问题](https://stackoverflow.com/questions/ask),因为除了“性能”之外的任何答案开始太长以待评论。 – Makyen