新增查询真实可用空间

This commit is contained in:
chuzhongzai 2024-09-15 00:09:46 +08:00
parent da9ab50613
commit 1eb5e16c6b
5 changed files with 25 additions and 2 deletions

View File

@ -14,7 +14,7 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
ConnectMessage.class, DelayTestMessage.class, DynamicConfigMessage.class, ExtractFileMessage.class, FileOperateMessage.class, FileQueryMessage.class, FileResponseMessage.class, ConnectMessage.class, DelayTestMessage.class, DynamicConfigMessage.class, ExtractFileMessage.class, FileOperateMessage.class, FileQueryMessage.class, FileResponseMessage.class,
MoveFileRequestMessage.class, MoveFileResponseMessage.class, PairMessage.class, PairResultMessage.class, ResponseMessage.class, ShareFileMessage.class, ShareFileQueryMessage.class, MoveFileRequestMessage.class, MoveFileResponseMessage.class, PairMessage.class, PairResultMessage.class, ResponseMessage.class, ShareFileMessage.class, ShareFileQueryMessage.class,
TaskCancelMessage.class, TaskStatusMessage.class, UnPairMessage.class, FileNode.class, Record.class, ShareFile.class, ShareFileDownloadRecord.class, Task.class, TaskCancelMessage.class, TaskStatusMessage.class, UnPairMessage.class, FileNode.class, Record.class, ShareFile.class, ShareFileDownloadRecord.class, Task.class,
User.class}) User.class, StorageSpaceQueryMessage.class})
public class WebComponentConfiguration implements WebMvcConfigurer { public class WebComponentConfiguration implements WebMvcConfigurer {
Interceptor interceptor; Interceptor interceptor;

View File

@ -26,6 +26,7 @@ public class AbstractMessage {
public static final int CONFIG_MESSAGE = 80; public static final int CONFIG_MESSAGE = 80;
public static final int CONNECT_MESSAGE = 90; public static final int CONNECT_MESSAGE = 90;
public static final int DELAY_TEST_MESSAGE = 91; public static final int DELAY_TEST_MESSAGE = 91;
public static final int STORAGE_SPACE_QUERY_MESSAGE = 92;
public int messageType; public int messageType;
public int messageId; public int messageId;

View File

@ -56,6 +56,7 @@ public class MessageCodec extends ByteToMessageCodec<AbstractMessage> {
case AbstractMessage.CONFIG_MESSAGE -> objectMapper.readValue(bytes, ConfigMessage.class); case AbstractMessage.CONFIG_MESSAGE -> objectMapper.readValue(bytes, ConfigMessage.class);
case AbstractMessage.CONNECT_MESSAGE -> objectMapper.readValue(bytes, ConnectMessage.class); case AbstractMessage.CONNECT_MESSAGE -> objectMapper.readValue(bytes, ConnectMessage.class);
case AbstractMessage.DELAY_TEST_MESSAGE -> objectMapper.readValue(bytes, DelayTestMessage.class); case AbstractMessage.DELAY_TEST_MESSAGE -> objectMapper.readValue(bytes, DelayTestMessage.class);
case AbstractMessage.STORAGE_SPACE_QUERY_MESSAGE -> objectMapper.readValue(bytes, StorageSpaceQueryMessage.class);
default -> throw new IllegalStateException("Unexpected value: " + type); default -> throw new IllegalStateException("Unexpected value: " + type);
}; };

View File

@ -0,0 +1,7 @@
package com.lion.snss.message;
public class StorageSpaceQueryMessage extends AbstractMessage{
{
messageType = AbstractMessage.STORAGE_SPACE_QUERY_MESSAGE;
}
}

View File

@ -450,6 +450,9 @@ public class CommunicateToMainService {
DelayTestMessage delayTestMessage = (DelayTestMessage) abstractMessage; DelayTestMessage delayTestMessage = (DelayTestMessage) abstractMessage;
ctx.channel().writeAndFlush(delayTestToIp(delayTestMessage)); ctx.channel().writeAndFlush(delayTestToIp(delayTestMessage));
} }
case AbstractMessage.STORAGE_SPACE_QUERY_MESSAGE -> {
ctx.channel().writeAndFlush(storageSpaceQuery(abstractMessage.getMessageId()));
}
} }
} }
@ -1041,7 +1044,7 @@ public class CommunicateToMainService {
try(TarArchiveInputStream tarInput = new TarArchiveInputStream(new BufferedInputStream(new FileInputStream(storagePath + task.getRelativePath() + task.getSourcePath())))) try(TarArchiveInputStream tarInput = new TarArchiveInputStream(new BufferedInputStream(new FileInputStream(storagePath + task.getRelativePath() + task.getSourcePath()))))
{ {
TarArchiveEntry entry; TarArchiveEntry entry;
while ((entry = tarInput.getNextTarEntry()) != null) { while ((entry = tarInput.getNextEntry()) != null) {
if (entry.isDirectory()) { if (entry.isDirectory()) {
// 如果是目录创建相应的目录结构 // 如果是目录创建相应的目录结构
File dir = new File(storagePath + task.getRelativePath() + task.getTargetPath(), entry.getName()); File dir = new File(storagePath + task.getRelativePath() + task.getTargetPath(), entry.getName());
@ -1274,5 +1277,16 @@ public class CommunicateToMainService {
data[5] = sum / 5; data[5] = sum / 5;
return response.put("data", Arrays.toString(data)).success(); return response.put("data", Arrays.toString(data)).success();
} }
private ResponseMessage storageSpaceQuery(int messageId){
ResponseMessage responseMessage = new ResponseMessage(messageId);
File file = new File(storagePath);
System.out.println("查询本节点存储空间:");
responseMessage.put("availableSpace", file.getFreeSpace());
responseMessage.put("totalSpace", file.getTotalSpace());
System.out.println(responseMessage.getData());
responseMessage.success();
return responseMessage;
}
} }
} }