set-security-label.md 1.8 KB
Newer Older
Z
zengyawen 已提交
1 2
# 设置分布式文件数据等级

Z
zengyawen 已提交
3
不同设备本身的安全能力差异较大,一些小的嵌入式设备安全能力远弱于平板等设备类型。用户或者应用不同的文件数据有不同安全诉求,例如个人的健康信息和银行卡信息等不期望被弱设备读取。因此,OpenHarmony提供一套完整的数据分级、设备分级标准,并针对不同设备制定不同的数据流转策略。
Z
zengyawen 已提交
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41


## 接口说明

API详细介绍请参见[ohos.file.securityLabel](../reference/apis/js-apis-file-securityLabel.md)

**表1** 设置文件数据等级

| 接口名 | 功能 | 接口类型 | 支持同步 | 支持异步 | 
| -------- | -------- | -------- | -------- | -------- |
| setSecurityLabel | 设置文件安全标签 | 方法 | √ | √ | 
| getSecurityLabel | 获取文件安全标签 | 方法 | √ | √ | 

> **须知:**
> 1. 对于不满足安全等级的文件,跨设备仍然可以看到该文件,但是无权限打开访问该文件。
> 
> 2. 分布式文件系统的数据等级默认为S3,应用可以主动设置文件的安全等级。

## 开发示例

获取通用文件沙箱路径,并设置数据等级标签。示例中的context的获取方式请参见[获取UIAbility的上下文信息](../application-models/uiability-usage.md#获取uiability的上下文信息)

  
```ts
import securityLabel from '@ohos.file.securityLabel';

// 获取需要设备数据等级的文件沙箱路径
let context = ...; // 获取UIAbilityContext信息
let pathDir = context.filesDir;
let filePath = pathDir + '/test.txt';

// 设置文件的数据等级为s0
securityLabel.setSecurityLabel(filePath, 's0').then(() => {
  console.info('Succeeded in setSecurityLabeling.');
}).catch((err) => {
  console.error(`Failed to setSecurityLabel. Code: ${err.code}, message: ${err.message}`);
});
```