什么是企业数据保护
你有没有想过,公司发的手机里的文件怎么保护?比如员工的照片、文档,公司怎么确保这些数据不被泄露?这就是企业数据保护要解决的问题。
EnterpriseDataGuardKit(企业数据保护服务)让企业可以管理设备上的文件。比如扫描设备上的所有文件,查看有哪些文件,然后根据企业策略来保护这些文件。
简单说,这就是一个"文件管家",帮企业管理设备上的文件安全。
核心功能
EnterpriseDataGuardKit 提供以下功能:
- 文件扫描:扫描设备上的媒体库和应用沙箱目录。你可以选择只扫描媒体库(照片、视频、文档等),或者同时扫描媒体库和应用沙箱目录。扫描是异步的,扫描过程中会通过回调函数把文件列表返回给你。扫描完成后,也会有一个完成回调,告诉你一共扫描了多少个文件
- 文件分级:根据文件类型进行分类管理。扫描出来的文件列表包含了文件的完整路径,你可以根据文件扩展名(.jpg、.pdf、.mp4 等)来分类。分类后可以做很多事情,比如审计报告、文件清理、合规检查等
环境搭建
硬件要求
- 设备类型:PC/2in1 设备
- HarmonyOS 系统:HarmonyOS NEXT Developer Beta1 及以上
软件要求
- DevEco Studio 版本:DevEco Studio 6.0.0 Release 及以上
- HarmonyOS SDK 版本:HarmonyOS 6.0.0 Release SDK 及以上
搭建步骤
- 安装 DevEco Studio:去华为开发者官网下载安装
- 配置开发环境:确保网络环境正常
- 设备调试:使用真机进行调试
项目结构
├── entry/src/main/ets // 代码区 │ ├── entryability │ │ └── EntryAbility.ets // 程序入口类 │ ├── pages │ │ └── Index.ets // 主界面 └── entry/src/main/resources // 资源文件目录文件扫描流程
下面是企业数据保护的文件扫描流程:
文件分类处理流程
下面是扫描后的文件分类处理流程:
第一步:配置权限
在module.json5中添加权限:
{"requestPermissions":[{"name":"ohos.permission.FILE_GUARD_MANAGER"},{"name":"ohos.permission.SET_FILE_GUARD_POLICY"}]}这两个权限是企业 MDM 应用权限,需要申请企业 MDM 应用发布证书和 Profile。
第二步:导入模块
import{fileGuard}from'@kit.EnterpriseDataGuardKit';导入企业数据保护模块。
第三步:创建 FileGuard 实例
@Entry@Componentstruct Index{@Statemessage:string='文件分级管控Sample';@Stateres:string='';privatefileGuard=newfileGuard.FileGuard();创建FileGuard实例,这个实例用来管理文件扫描任务。
第四步:定义回调函数
// 文件扫描结果处理回调函数onRecvFilelist(files:Array<string>):void{console.info(`[scanFileGuard] file length is${files.length}.`);files.forEach((value,index)=>{console.info(`[scanFileGuard] getFileList get one file${value}.`);})}// 扫描任务结束完成回调函数onCompleteTask(count:number):void{console.info(`[scanFileGuard] getFileList Scan finished. count is${count}.`);}定义两个回调函数:
onRecvFilelist:接收到扫描到的文件列表时调用onCompleteTask:扫描任务完成时调用
第五步:启动文件扫描
privategetFileList(){try{letscanFileCallback:fileGuard.ScanFileCallback={onReceiveFileList:this.onRecvFilelist,onTaskCompleted:this.onCompleteTask,};this.fileGuard.startFileScanTask(fileGuard.CommonDirScanType.MEDIA_AND_SANDBOX,scanFileCallback);this.res='success';}catch(err){console.error(`[scanFileGuard] Failed to get file list, Code:${err.code}, message:${err.message}`);}}启动文件扫描:
- 创建回调对象,把两个回调函数传进去
- 调用
startFileScanTask启动扫描 CommonDirScanType.MEDIA_AND_SANDBOX表示扫描媒体库和应用沙箱目录
扫描模式
EnterpriseDataGuardKit 支持两种扫描模式:
MEDIA_ONLY:只扫描媒体库目录MEDIA_AND_SANDBOX:扫描媒体库和应用沙箱目录
实际应用场景
企业数据保护在实际开发中有很多用途:
文件审计
// 扫描设备上的所有文件,生成审计报告onRecvFilelist(files:Array<string>):void{letreport={totalFiles:files.length,imageCount:files.filter(f=>f.endsWith('.jpg')||f.endsWith('.png')).length,documentCount:files.filter(f=>f.endsWith('.pdf')||f.endsWith('.doc')).length,// ...};// 上传审计报告}文件分类
// 根据文件类型进行分类onRecvFilelist(files:Array<string>):void{letcategories={images:files.filter(f=>/\.(jpg|png|gif)$/.test(f)),documents:files.filter(f=>/\.(pdf|doc|txt)$/.test(f)),videos:files.filter(f=>/\.(mp4|avi)$/.test(f)),};// 根据分类进行不同处理}文件清理
// 清理不需要的文件onRecvFilelist(files:Array<string>):void{lettempFiles=files.filter(f=>f.includes('temp')||f.includes('cache'));// 删除临时文件}适用场景
企业数据保护适合以下场景:
- 企业 MDM:企业移动设备管理
- 文件审计:审计设备上的文件
- 数据防泄露:防止企业数据泄露
- 合规管理:确保设备符合企业安全策略
注意事项
- 权限要求:需要企业 MDM 应用权限,普通应用无法使用
- 设备支持:目前只支持 PC/2in1 设备
- 扫描范围:可以扫描媒体库和应用沙箱目录
- 回调处理:回调函数要轻量,不要做耗时操作
- 隐私合规:使用文件扫描功能要遵守隐私法规
总结
EnterpriseDataGuardKit 让企业可以管理设备上的文件安全,核心流程:
- 配置企业 MDM 权限
- 创建 FileGuard 实例
- 定义扫描回调函数
- 启动文件扫描任务
- 处理扫描结果
掌握了这些,你就能为企业应用添加文件安全管理功能。