javascript - 既然不推荐使用,我如何请求增加网络存储配额?
问题描述
我遇到的问题是我的应用无法访问足够的存储空间,而且我不知道如何请求更多存储空间。看起来一个曾经能够做类似的事情:
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),所以即使知道如何重置也是很好的以用户身份手动进行配额,更不用说开发人员了。)
解决方案
没有标准的方法可以做到这一点。
在 Chrome 中,扩展程序(由用户或管理员安装)可以授予来源“unlimitedStorage”,但是......这不是网络。我们(Chrome 团队)正在考虑通过改变我们的启发式方法来扩展可用的存储空间;无需 API 调用。(当前的启发式方法导致每个源允许 6% 的磁盘大小,这对于强大的 Web 应用程序来说太低了。)
其他浏览器对分配的存储量有其他启发式方法。有一些关于允许站点创建多个具有不同优先级的数据“桶”(通过新的 API)的讨论,从而允许站点拥有一个“低优先级”桶,它可以存储更多数据,但更不稳定,并且可以在存储压力下被浏览器丢弃。但这些想法还为时过早。
推荐阅读
- android - 如何让'framework.jar'在Android Studio北极狐上的'android.jar'前面编译
- typescript - 如何从 d.ts 中提取选定的类型以创建新的类型文件,即新的 d.ts 文件
- javascript - 图表 js 填充不适用于数据标签
- wordpress - 子域地址不断重定向
- haskell - 在 SBV 中解决算术问题时如何避免 IO monad
- google-apps-script - 我正在尝试自动将过滤器应用于列 - 并按该列按降序对工作表进行排序
- reactjs - 如何避免嵌套地图以获得更好的渲染性能?
- django - Django 仅针对具有相同结构的多个类中的 1 个模型类抛出“列不存在错误”
- django - 如何在使用 Material Design Layout() 功能的 Django CreateView 上放置验证码
- kubernetes - 是否有可能恢复 kubernetes 丢失的状态 pvc