补充文件备份相关功能
This commit is contained in:
parent
5eb98d6f78
commit
347ae33c71
|
|
@ -3,6 +3,7 @@ package com.electromagnetic.industry.software.manage.config;
|
|||
import cn.hutool.core.io.FileUtil;
|
||||
import com.electromagnetic.industry.software.common.util.EleCommonUtil;
|
||||
import lombok.Getter;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.core.env.Environment;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
|
|
@ -24,6 +25,14 @@ public class ElePropertyConfig {
|
|||
|
||||
private String prjDir;
|
||||
|
||||
@Value("${data.tmp.days:7}")
|
||||
private int tmpFileStoreDays;
|
||||
|
||||
@Value("${backup.remote.host}")
|
||||
private String remoteHost = "";
|
||||
@Value("${backup.remote.port}")
|
||||
private int remotePort;
|
||||
|
||||
@PostConstruct
|
||||
public void init() {
|
||||
uploadDataDir = EleCommonUtil.isWinOs() ? environment.getProperty("data.upload.windows.tmp.path") : environment.getProperty("data.upload.linux.tmp.path");
|
||||
|
|
|
|||
|
|
@ -1,17 +1,23 @@
|
|||
package com.electromagnetic.industry.software.manage.tasks;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.text.StrFormatter;
|
||||
import cn.hutool.http.HttpUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.electromagnetic.industry.software.common.enums.UserOperationModuleEnum;
|
||||
import com.electromagnetic.industry.software.common.pojo.BackupFileResLog;
|
||||
import com.electromagnetic.industry.software.common.resp.ElectromagneticResult;
|
||||
import com.electromagnetic.industry.software.common.util.IdWorker;
|
||||
import com.electromagnetic.industry.software.manage.config.ElePropertyConfig;
|
||||
import com.electromagnetic.industry.software.manage.mapper.FileBackupLogMapper;
|
||||
import com.electromagnetic.industry.software.manage.mapper.UserAccessLogMapper;
|
||||
import com.electromagnetic.industry.software.manage.pojo.models.FileBackupLog;
|
||||
import com.electromagnetic.industry.software.manage.pojo.models.UserAccessLog;
|
||||
import com.electromagnetic.industry.software.manage.service.FileSystemService;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
|
@ -25,11 +31,12 @@ import java.util.Map;
|
|||
@Component
|
||||
public class BackupTask extends ServiceImpl<FileBackupLogMapper, FileBackupLog> {
|
||||
|
||||
private String host;
|
||||
private int port;
|
||||
|
||||
@Resource
|
||||
private ElePropertyConfig elePropertyConfig;
|
||||
@Resource
|
||||
private FileSystemService fileSystemService;
|
||||
@Resource
|
||||
private UserAccessLogMapper userAccessLogMapper;
|
||||
|
||||
// @Scheduled(cron = "0 0 1 * * ?")
|
||||
public void backup() {
|
||||
|
|
@ -45,8 +52,38 @@ public class BackupTask extends ServiceImpl<FileBackupLogMapper, FileBackupLog>
|
|||
}
|
||||
}
|
||||
|
||||
// @Scheduled(cron = "0 0 3 * * ?")
|
||||
public void deleteTmpFile() {
|
||||
DateTime backDaysTime = DateUtil.offsetDay(new Date(), elePropertyConfig.getTmpFileStoreDays());
|
||||
FileFilter filter = file -> file.lastModified() < backDaysTime.getTime();
|
||||
List<File> files = FileUtil.loopFiles(elePropertyConfig.getTmpDir(), filter);
|
||||
for (File file : files) {
|
||||
fileSystemService.deleteFile(file.getAbsolutePath());
|
||||
UserAccessLog userAccessLog = UserAccessLog.builder()
|
||||
.id(IdWorker.getSnowFlakeIdString())
|
||||
.userId("")
|
||||
.accessStartTime(new Date())
|
||||
.accessEndTime(new Date())
|
||||
.accessDuration(0L)
|
||||
.action("删除")
|
||||
.requestUrl("")
|
||||
.requestIp("")
|
||||
.reqArgs("")
|
||||
.remoteAddr("")
|
||||
.accessSuccess(true)
|
||||
.operationMsg("从系统中物理删除了文件" + file.getName())
|
||||
.createTime(new Date())
|
||||
.operationModule(UserOperationModuleEnum.DATABASE.key)
|
||||
.dataId("")
|
||||
.parentId("")
|
||||
.response("")
|
||||
.build();
|
||||
userAccessLogMapper.insert(userAccessLog);
|
||||
}
|
||||
}
|
||||
|
||||
private static List<File> filter(long time, String dir) {
|
||||
FileFilter filter = file -> file.lastModified() > time;
|
||||
FileFilter filter = file -> file.lastModified() < time;
|
||||
return FileUtil.loopFiles(dir, filter);
|
||||
}
|
||||
|
||||
|
|
@ -68,11 +105,9 @@ public class BackupTask extends ServiceImpl<FileBackupLogMapper, FileBackupLog>
|
|||
}
|
||||
|
||||
public BackupFileResLog backup(String filePath) {
|
||||
String prjPath = "";
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("file", new File(filePath));
|
||||
map.put("path", prjPath);
|
||||
String url = StrFormatter.format("http://{}:{}/data/file/backup/upload", host, port);
|
||||
String url = StrFormatter.format("http://{}:{}/data/file/backup/upload", elePropertyConfig.getRemoteHost(), elePropertyConfig.getRemotePort());
|
||||
String res = HttpUtil.post(url, map);
|
||||
ElectromagneticResult<?> resObj = JSONUtil.toBean(res, ElectromagneticResult.class);
|
||||
String data = JSONUtil.toJsonStr(resObj.getData());
|
||||
|
|
|
|||
|
|
@ -40,3 +40,8 @@ data.linux.user.tmp.path=/szsd/data/eleData/dev/user_tmp
|
|||
prj.folder.max.length=6
|
||||
|
||||
spring.jackson.time-zone=GMT+8
|
||||
|
||||
tmp.file.store.days=7
|
||||
|
||||
backup.remote.host=127.0.0.1
|
||||
backup.remote.port=1111
|
||||
Loading…
Reference in New Issue