首页 > 解决方案 > 既然不推荐使用,我如何请求增加网络存储配额?

问题描述

我遇到的问题是我的应用无法访问足够的存储空间,而且我不知道如何请求更多存储空间。看起来一个曾经能够做类似的事情:

var requestedBytes = 1024*1024*10; // 10MB

navigator.webkitPersistentStorage.requestQuota(requestedBytes,
    grantedBytes => console.log('grantedBytes', grantedBytes),
    e => console.log('Error', e)
)

但该 API 现在已弃用(例如,请参阅Google 的配额管理 API 页面

这甚至可能吗?我发现的唯一东西是navigator.storage.persist(),但如果我得到一个很小的配额,那就没用了。

(除此之外:我特别有问题,因为在测试中,由于错误,我使用了大量的存储空间,然后它限制了我的进一步配额甚至更小(比如 100kB),所以即使知道如何重置也是很好的以用户身份手动进行配额,更不用说开发人员了。)

标签: javascriptlocal-storageindexeddbpersistent-storagequota

解决方案


没有标准的方法可以做到这一点。

在 Chrome 中,扩展程序(由用户或管理员安装)可以授予来源“unlimitedStorage”,但是......这不是网络。我们(Chrome 团队)正在考虑通过改变我们的启发式方法来扩展可用的存储空间;无需 API 调用。(当前的启发式方法导致每个源允许 6% 的磁盘大小,这对于强大的 Web 应用程序来说太低了。)

其他浏览器对分配的存储量有其他启发式方法。有一些关于允许站点创建多个具有不同优先级的数据“桶”(通过新的 API)的讨论,从而允许站点拥有一个“低优先级”桶,它可以存储更多数据,但更不稳定,并且可以在存储压力下被浏览器丢弃。但这些想法还为时过早。


推荐阅读