增加云端录像手动删除

This commit is contained in:
648540858 2025-04-14 22:54:30 +08:00
parent 65cd397a9c
commit 45b3d9322c
3 changed files with 28 additions and 11 deletions

View File

@ -1,6 +1,7 @@
package com.genersoft.iot.vmp.conf; package com.genersoft.iot.vmp.conf;
import com.genersoft.iot.vmp.conf.exception.ControllerException;
import com.genersoft.iot.vmp.media.bean.MediaServer; import com.genersoft.iot.vmp.media.bean.MediaServer;
import com.genersoft.iot.vmp.media.service.IMediaServerService; import com.genersoft.iot.vmp.media.service.IMediaServerService;
import com.genersoft.iot.vmp.service.bean.CloudRecordItem; import com.genersoft.iot.vmp.service.bean.CloudRecordItem;
@ -59,11 +60,14 @@ public class CloudRecordTimer {
// TODO 后续可以删除空了的过期日期文件夹 // TODO 后续可以删除空了的过期日期文件夹
for (CloudRecordItem cloudRecordItem : cloudRecordItemList) { for (CloudRecordItem cloudRecordItem : cloudRecordItemList) {
String date = new File(cloudRecordItem.getFilePath()).getParentFile().getName(); String date = new File(cloudRecordItem.getFilePath()).getParentFile().getName();
boolean deleteResult = mediaServerService.deleteRecordDirectory(mediaServerItem, cloudRecordItem.getApp(), try {
cloudRecordItem.getStream(), date, cloudRecordItem.getFileName()); boolean deleteResult = mediaServerService.deleteRecordDirectory(mediaServerItem, cloudRecordItem.getApp(),
if (deleteResult) { cloudRecordItem.getStream(), date, cloudRecordItem.getFileName());
log.warn("[录像文件定时清理] 删除磁盘文件成功: {}", cloudRecordItem.getFilePath()); if (deleteResult) {
} log.warn("[录像文件定时清理] 删除磁盘文件成功: {}", cloudRecordItem.getFilePath());
}
}catch (ControllerException ignored) {}
} }
result += cloudRecordServiceMapper.deleteList(cloudRecordItemList); result += cloudRecordServiceMapper.deleteList(cloudRecordItemList);
} }

View File

@ -169,7 +169,7 @@ public class ZLMMediaNodeServerService implements IMediaNodeServerService {
return true; return true;
}else { }else {
log.info("[zlm-deleteRecordDirectory] 删除磁盘文件错误, server: {} {}:{}->{}/{}, 结果: {}", mediaServer.getId(), app, stream, date, fileName, jsonObject); log.info("[zlm-deleteRecordDirectory] 删除磁盘文件错误, server: {} {}:{}->{}/{}, 结果: {}", mediaServer.getId(), app, stream, date, fileName, jsonObject);
return false; throw new ControllerException(ErrorCode.ERROR100.getCode(), "删除磁盘文件失败");
} }
} }

View File

@ -344,18 +344,31 @@ public class CloudRecordServiceImpl implements ICloudRecordService {
return; return;
} }
List<CloudRecordItem> cloudRecordItemIdListForDelete = new ArrayList<>(); List<CloudRecordItem> cloudRecordItemIdListForDelete = new ArrayList<>();
StringBuilder stringBuilder = new StringBuilder();
for (CloudRecordItem cloudRecordItem : cloudRecordItemList) { for (CloudRecordItem cloudRecordItem : cloudRecordItemList) {
String date = new File(cloudRecordItem.getFilePath()).getParentFile().getName(); String date = new File(cloudRecordItem.getFilePath()).getParentFile().getName();
MediaServer mediaServer = mediaServerService.getOne(cloudRecordItem.getMediaServerId()); MediaServer mediaServer = mediaServerService.getOne(cloudRecordItem.getMediaServerId());
boolean deleteResult = mediaServerService.deleteRecordDirectory(mediaServer, cloudRecordItem.getApp(), try {
cloudRecordItem.getStream(), date, cloudRecordItem.getFileName()); boolean deleteResult = mediaServerService.deleteRecordDirectory(mediaServer, cloudRecordItem.getApp(),
if (deleteResult) { cloudRecordItem.getStream(), date, cloudRecordItem.getFileName());
log.warn("[录像文件定时清理] 删除磁盘文件成功: {}", cloudRecordItem.getFilePath()); if (deleteResult) {
cloudRecordItemIdListForDelete.add(cloudRecordItem); log.warn("[录像文件定时清理] 删除磁盘文件成功: {}", cloudRecordItem.getFilePath());
cloudRecordItemIdListForDelete.add(cloudRecordItem);
}
}catch (ControllerException e) {
if (stringBuilder.length() > 0) {
stringBuilder.append(", ");
}
stringBuilder.append(cloudRecordItem.getFileName());
} }
} }
if (!cloudRecordItemIdListForDelete.isEmpty()) { if (!cloudRecordItemIdListForDelete.isEmpty()) {
cloudRecordServiceMapper.deleteList(cloudRecordItemIdListForDelete); cloudRecordServiceMapper.deleteList(cloudRecordItemIdListForDelete);
} }
if (stringBuilder.length() > 0) {
stringBuilder.append(" 删除失败");
throw new ControllerException(ErrorCode.ERROR100.getCode(), stringBuilder.toString());
}
} }
} }