diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/handler/host/terminal/handler/SftpRemoveHandler.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/handler/host/terminal/handler/SftpRemoveHandler.java index 40fea27f..2b4759b6 100644 --- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/handler/host/terminal/handler/SftpRemoveHandler.java +++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/handler/host/terminal/handler/SftpRemoveHandler.java @@ -29,10 +29,11 @@ public class SftpRemoveHandler extends AbstractTerminalHandler @Override public void handle(WebSocketSession channel, SftpBaseRequest payload) { long startTime = System.currentTimeMillis(); - // 获取会话 + String path = payload.getPath(); String sessionId = payload.getSessionId(); + // 获取会话 ISftpSession session = hostTerminalManager.getSession(channel.getId(), sessionId); - String[] paths = payload.getPath().split("\\|"); + String[] paths = path.split("\\|"); log.info("SftpRemoveHandler-handle start sessionId: {}, path: {}", sessionId, Arrays.toString(paths)); Exception ex = null; // 删除 @@ -53,7 +54,7 @@ public class SftpRemoveHandler extends AbstractTerminalHandler .build()); // 保存操作日志 Map extra = Maps.newMap(); - extra.put(OperatorLogs.PATH, payload.getPath()); + extra.put(OperatorLogs.PATH, path); this.saveOperatorLog(payload, channel, extra, HostTerminalOperatorType.SFTP_REMOVE, startTime, ex); diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/handler/host/transfer/utils/TransferUtils.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/handler/host/transfer/utils/TransferUtils.java index 2b2bd829..03e2bdfd 100644 --- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/handler/host/transfer/utils/TransferUtils.java +++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/handler/host/transfer/utils/TransferUtils.java @@ -2,6 +2,7 @@ package com.orion.visor.module.asset.handler.host.transfer.utils; import com.alibaba.fastjson.JSON; import com.orion.lang.exception.argument.InvalidArgumentException; +import com.orion.lang.utils.Strings; import com.orion.visor.framework.common.constant.ErrorMessage; import com.orion.visor.framework.websocket.core.utils.WebSockets; import com.orion.visor.module.asset.handler.host.transfer.enums.TransferReceiverType; @@ -64,7 +65,11 @@ public class TransferUtils { if (ex == null) { return null; } else if (ex instanceof InvalidArgumentException) { - return ex.getMessage(); + String message = ex.getMessage(); + if (Strings.isBlank(message)) { + return ErrorMessage.OPERATE_ERROR; + } + return message; } else if (ex instanceof ClientAbortException) { return ErrorMessage.CLIENT_ABORT; } diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/impl/HostSftpServiceImpl.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/impl/HostSftpServiceImpl.java index a7fe2ce2..bf7363cb 100644 --- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/impl/HostSftpServiceImpl.java +++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/impl/HostSftpServiceImpl.java @@ -60,7 +60,10 @@ public class HostSftpServiceImpl implements HostSftpService { vo.setHostId(extra.getLong(ExtraFieldConst.HOST_ID)); vo.setHostName(extra.getString(ExtraFieldConst.HOST_NAME)); vo.setHostAddress(extra.getString(ExtraFieldConst.ADDRESS)); - vo.setPaths(extra.getString(ExtraFieldConst.PATH).split("\\|")); + String[] paths = Optional.ofNullable(extra.getString(ExtraFieldConst.PATH)) + .map(p -> p.split("\\|")) + .orElse(new String[0]); + vo.setPaths(paths); vo.setExtra(extra); return vo; }); diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/utils/SftpUtils.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/utils/SftpUtils.java index 3aa3af2b..b1c324ca 100644 --- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/utils/SftpUtils.java +++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/utils/SftpUtils.java @@ -1,8 +1,10 @@ package com.orion.visor.module.asset.utils; import com.alibaba.fastjson.JSON; +import com.jcraft.jsch.SftpException; import com.orion.lang.utils.Booleans; import com.orion.lang.utils.Strings; +import com.orion.lang.utils.io.Files1; import com.orion.net.host.sftp.SftpExecutor; import com.orion.net.host.sftp.SftpFile; import com.orion.visor.module.asset.define.config.AppSftpConfig; @@ -39,7 +41,12 @@ public class SftpUtils { SftpFileBackupParams backupParams = new SftpFileBackupParams(file.getName(), System.currentTimeMillis()); String target = Strings.format(config.getBackupFileName(), JSON.parseObject(JSON.toJSONString(backupParams))); // 移动 - executor.move(path, target); + try { + executor.getChannel().rename(path, Files1.getPath(Files1.normalize(Files1.getPath(path + "/../" + target)))); + } catch (SftpException ignored) { + } + // FIXME kit + // executor.move(path, target); } } diff --git a/orion-visor-ui/src/api/asset/host-sftp.ts b/orion-visor-ui/src/api/asset/host-sftp.ts index d874bbd8..26e13c2a 100644 --- a/orion-visor-ui/src/api/asset/host-sftp.ts +++ b/orion-visor-ui/src/api/asset/host-sftp.ts @@ -41,6 +41,7 @@ export interface HostSftpLogQueryResponse extends TableData { export interface HostSftpLogExtra { mod: number; target: string; + maxCount: number; } /** diff --git a/orion-visor-ui/src/views/asset-audit/sftp-log/components/sftp-log-table.vue b/orion-visor-ui/src/views/asset-audit/sftp-log/components/sftp-log-table.vue index d34ab08b..7f7c8a93 100644 --- a/orion-visor-ui/src/views/asset-audit/sftp-log/components/sftp-log-table.vue +++ b/orion-visor-ui/src/views/asset-audit/sftp-log/components/sftp-log-table.vue @@ -107,10 +107,14 @@ {{ getDictValue(sftpOperatorTypeKey, record.type) }} + +