EasyGBS删除告警信息后无法同步删除告警录像和快照的优化方案
在TSINGSEE青犀视频平台中,EasyGBS和EasyCVR结构化智能分析平台都是支持告警上报功能的,当EasyGBS在底层数据收集上来后,在对原始数据解析,增加了告警计算后将告警信息持久化,当监测有异常情况时,系统就会自动截取快照并记录时间。
EasyGBS在客户现场运行时,出现了一个关于告警的问题,即告警删除没有同步删除告警录像和快照,导致视频和图片文件依然占用磁盘空间。
我们对录像文件进行检查,能够查看到当数据库记录删除的时候,没有去删除对应的资源文件,导致硬盘空间占用。
添加如下代码,当前端删除告警记录的时候,去数据库查找对应的记录然后从中获取到快照路径和录像路径,然后删除磁盘上对应的文件。
var alarmList []models.Alarm
dbclient.Table(models.Alarm{}.TableName()).Find(&alarmList, `id in (?)`, alarmid_arr)
for _, v := range alarmList {
alarmRecordDir := filepath.Join(utils.DataDir(), v.AlarmRecord)
os.RemoveAll(alarmRecordDir)
}
再次查询记录成功删除。
当然了,EasyGBS并不是一个封闭的系统平台,假如用户有其他的平台,想要调取我们的设备报警信息,也可以通过接口来获取,EasyGBS视频平台提供了丰富的二次开发接口,用户可以自由选择不同的接口调用并集成到自己的平台上,操作简单方便,欢迎了解。