应用沙箱目录
更新时间:
蓝河应用框架给每个应用分配了一个专属的应用目录,蓝河应用的数据访问和操作都被限制在该目录内,此目录下存放的数据可以保护数据的安全性,这个目录称为 “应用的沙箱目录”。
应用沙箱目录定义
应用沙箱目录定义详细说明
沙箱目录名 | 定义说明 |
---|---|
files | 应用在本设备上用于存放小而重要的数据目录(如用户登录数据),安全且持久有效,随应用卸载而删除。 |
cache | 应用在本设备上用于存放缓存文件的目录(如图片、音频缓存),此目录可能会因系统空间不足而被清理,用户也可通过系统管理类应用清理该目录,此目录随应用卸载而删除,适合保存不重要的缓存数据。 |
mass | 应用在本设备上用于存放大文件的目录(如下载的音频文件),此目录随应用卸载而删除。 |
tmp | 应用在本设备上用于存放临时文件的目录(如临时日志),应用退出后就会清理该目录,此目录随应用卸载而删除,适合存放使用后即可删除的文件数据。 |
preferences | 应用在本设备上用于存放 key-val 数据的目录,有大小限制,此目录下的数据通过 storage 的 API 写入,适合保存首选项和配置文件,随应用卸载而删除。 |
访问沙箱目录
沙箱目录是通过 URI 形式访问,每个沙箱目录都有对应的 URI 标准标识。可以使用 URI 的地方都可以访问到沙箱目录,下面表格展示了不同沙箱目录的对应的 URI 格式。
沙箱目录名 | URI 定义 |
---|---|
files | internal://files/ |
cache | internal://cache/ |
mass | internal://mass/ |
tmp | internal://tmp/ |
如需要往 files 沙箱存放一个 json 文件,则可如下操作:
file.writeText({
uri: 'internal://files/demo.json',
text: '{"name": "张三"}',
success: function () {
console.log('handling success')
},
fail: function (data, code) {
console.log(`handling fail, code = ${code}`)
},
})
复制代码
如何选择存放沙箱目录的位置
沙箱目录的不同划分是为了对数据进行分类管理,将数据放在合理的目录下会让应用获得更大的收益。
对于不同沙箱目录的使用场景如下:
- files:此目录用于存放小而重要的数据,目录长期有效,可以保存的文本文件,如 json。
- mass:此目录用于存放大而不太重要的数据,目录长期有效,可以保存需要需要持久化的图片、音频、视频等文件。
- cache:此目录用于存放缓存文件,适合保存不重要的缓存数据,如缓存的音频、视频等。
- tmp:此目录用于存放临时文件,应用退出后可能被清理,适合存放日志等临时文件。
- preferences:此目录只能通过 storage 能力访问,适合存放应用运行中的 key-val 数据。
JS 如何正确的使用沙箱目录
要在 js 中使用沙箱目录,只要遵循蓝河应用框架开发即可。
- 存放/获取 文件时,使用 blueos.storage.file 能力,并且使用 URI 拼接,避免使用绝对路径写法。
- 存放/获取 key-val 时,使用 blueos.storage.storage 能力。
- 存放在沙箱目录内的图片,如果要用 image 标签访问,也需要使用 URI 访问。
- 同上,音频和视频文件如果要播放同样是需要 URI 访问。