我们能否将文件存储在Chrome Storage中,而不是字符串?

3

我在Chrome存储API页面上读到,我们可以针对键将字符串值存储在Chrome存储中。是否有办法将文件针对键存储在Chrome存储中?


1
Chrome存储遵循与localStorage API相同的标准,因此您应该查看已经回答的这个问题:https://dev59.com/qm445IYBdhLWcg3wTIVf - undefined
谢谢提供的链接。 与Chrome存储相比,LocalStorage的空间有限。在Chrome存储中存储以base64编码的文件字符串是否是一个好主意?文件数量可能达到数千个,总空间可能超过5GB。 你提供的链接建议使用文件API,我认为如果我上面提到的不是一个好主意,那么这是正确的方法。 - undefined
文件API会快上一个数量级,因为它不会将文件转换为字符串。 - undefined
1个回答

2
chrome.storage将其存储的值作为JSON字符串化,因此,如果您将文件转换为可以转换为JSON的形式(例如通过JSON.stringify()),则可以存储文件内容。如果您要存储在chrome.storage中的值无法转换为JSON,则无法存储(例如DOM元素)。chrome.storage本质上不关心数据表示的内容,只关心它是否可以被JSON字符串化。
如果您像您评论中所述的那样询问是否将超过5GB的数千个不同“文件”存储在chrome.storage中是一个好主意,那么答案是:“不是!”
如果您正在寻找替代方案,则一些替代方案提供在Can you use HTML5 local storage to store a file? If not, how?中。

2
但是在Chrome存储中,我们可以通过在Chrome扩展的清单中设置属性"unlimitedStorage"来存储无限量的数据。 https://developer.chrome.com/apps/declare_permissions#unlimitedStorage那么为什么你会认为在Chrome存储中拥有5GB的数据是一个坏主意呢?你能解释一下吗? 关于在Chrome存储中存储文件的问题;我可以将它们存储为blob或bufferdata格式,而不是json;所以我认为从Chrome存储中获取blob,并将其转换回文件应该是可行的。如果这不是一个好主意,请告诉我。 - undefined
Chrome会将其转换为JSON格式,这是毋庸置疑的。你不需要自己手动将其转换为JSON,只需确保它们能够被转换为JSON,因为Chrome会自动进行转换。 - undefined
如果你真的对为什么感兴趣,那应该是另一个问题,因为任何超过"性能"之外的答案都太长了,不适合评论。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接