diff --git a/.idea/misc.xml b/.idea/misc.xml index d7be3bf..8c6f3c9 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,3 +1,4 @@ + @@ -6,6 +7,7 @@ + diff --git a/src/main/java/lion/Message/AbstractMessage.java b/src/main/java/lion/Message/AbstractMessage.java index c0e4d27..42a86c5 100644 --- a/src/main/java/lion/Message/AbstractMessage.java +++ b/src/main/java/lion/Message/AbstractMessage.java @@ -10,8 +10,6 @@ public class AbstractMessage { public static final byte RESPONSE_MESSAGE = 0; - public static final byte UPDATE_GALLERY_MESSAGE = 4; - public static final byte GALLERY_PAGE_QUERY_MESSAGE = 5; public static final byte IDENTITY_MESSAGE = 6; diff --git a/src/main/java/lion/Message/Acclerator/FileTransferMessage.java b/src/main/java/lion/Message/Acclerator/FileTransferMessage.java deleted file mode 100644 index 0804794..0000000 --- a/src/main/java/lion/Message/Acclerator/FileTransferMessage.java +++ /dev/null @@ -1,14 +0,0 @@ -package lion.Message.Acclerator; - -import lion.Message.AbstractMessage; -import lombok.Data; - -@Data -public class FileTransferMessage extends AbstractMessage { - { - messageType = FILE_TRANSFER_MESSAGE; - } - String filename; - int port; - boolean isThumbnail; -} diff --git a/src/main/java/lion/Message/Acclerator/lombok.config b/src/main/java/lion/Message/Acclerator/lombok.config deleted file mode 100644 index 8e37527..0000000 --- a/src/main/java/lion/Message/Acclerator/lombok.config +++ /dev/null @@ -1,2 +0,0 @@ -config.stopBubbling=true -lombok.equalsAndHashCode.callSuper=call \ No newline at end of file diff --git a/src/main/java/lion/Message/Main/DeleteGalleryMessage.java b/src/main/java/lion/Message/Main/DeleteGalleryMessage.java index 26cd6be..d166008 100644 --- a/src/main/java/lion/Message/Main/DeleteGalleryMessage.java +++ b/src/main/java/lion/Message/Main/DeleteGalleryMessage.java @@ -8,14 +8,5 @@ public class DeleteGalleryMessage extends AbstractMessage { { messageType = DELETE_GALLERY_MESSAGE; } - - public static final byte DELETE_ALL = 3; - public static final byte DELETE_PREVIEW = 2; - public static final byte DELETE_SOURCE = 1; - - - - byte deleteType; - String galleryName; } diff --git a/src/main/java/lion/Message/Main/UpdateGalleryMessage.java b/src/main/java/lion/Message/Main/UpdateGalleryMessage.java deleted file mode 100644 index 9623855..0000000 --- a/src/main/java/lion/Message/Main/UpdateGalleryMessage.java +++ /dev/null @@ -1,14 +0,0 @@ -package lion.Message.Main; - -import lion.Domain.GalleryTask; -import lion.Message.AbstractMessage; -import lombok.Data; - -@Data -public class UpdateGalleryMessage extends AbstractMessage { - { - messageType = UPDATE_GALLERY_MESSAGE; - } - - GalleryTask galleryTask; -} diff --git a/src/main/java/lion/Message/MessageCodec.java b/src/main/java/lion/Message/MessageCodec.java index e569e5d..6c7157a 100644 --- a/src/main/java/lion/Message/MessageCodec.java +++ b/src/main/java/lion/Message/MessageCodec.java @@ -44,12 +44,10 @@ public class MessageCodec extends ByteToMessageCodec { case AbstractMessage.DOWNLOAD_STATUS_MESSAGE -> objectMapper.readValue(metadata, DownloadStatusMessage.class); case AbstractMessage.GALLERY_REQUEST_MESSAGE -> objectMapper.readValue(metadata, GalleryRequestMessage.class); case AbstractMessage.RESPONSE_MESSAGE -> objectMapper.readValue(metadata, ResponseMessage.class); - case AbstractMessage.UPDATE_GALLERY_MESSAGE -> objectMapper.readValue(metadata, UpdateGalleryMessage.class); case AbstractMessage.DELETE_GALLERY_MESSAGE -> objectMapper.readValue(metadata, DeleteGalleryMessage.class); case AbstractMessage.GALLERY_PAGE_QUERY_MESSAGE -> objectMapper.readValue(metadata, GalleryPageQueryMessage.class); case AbstractMessage.IDENTITY_MESSAGE -> objectMapper.readValue(metadata, IdentityMessage.class); case AbstractMessage.MAINTAIN_MESSAGE -> objectMapper.readValue(metadata, MaintainMessage.class); - case AbstractMessage.FILE_TRANSFER_MESSAGE -> objectMapper.readValue(metadata, FileTransferMessage.class); default -> null; }; diff --git a/src/main/java/lion/Service/DeleteService.java b/src/main/java/lion/Service/DeleteService.java index 170a6ca..aeff217 100644 --- a/src/main/java/lion/Service/DeleteService.java +++ b/src/main/java/lion/Service/DeleteService.java @@ -11,35 +11,9 @@ public class DeleteService { if(!file.isDirectory()) return ErrorCode.FILE_NOT_FOUND; - if (FileUtil.del(path)) { + if (FileUtil.del(path)) return 0; - }else{ + else return ErrorCode.IO_ERROR; - } - } - - public static byte deletePreview(String path){ - File directory = new File(path); - File[] files = directory.listFiles((dir, name) -> !name.endsWith("zip")); - - if(files == null) - return ErrorCode.FILE_NOT_FOUND; - for (File file : files) - if(!FileUtil.del(file)) - return ErrorCode.IO_ERROR; - - return 0; - } - - public static byte deleteSource(String path){ - File directory = new File(path); - File[] files = directory.listFiles((dir, name) -> name.endsWith("zip")); - - if(files == null) - return ErrorCode.FILE_NOT_FOUND; - if(!FileUtil.del(files[0])) - return ErrorCode.IO_ERROR; - - return 0; } } diff --git a/src/main/java/lion/Service/DownloadCheckService.java b/src/main/java/lion/Service/DownloadCheckService.java index f92ea90..71ff594 100644 --- a/src/main/java/lion/Service/DownloadCheckService.java +++ b/src/main/java/lion/Service/DownloadCheckService.java @@ -3,15 +3,12 @@ package lion.Service; import io.netty.channel.Channel; import io.netty.channel.DefaultEventLoop; import io.netty.channel.EventLoop; -import io.netty.util.concurrent.DefaultPromise; import io.netty.util.concurrent.Promise; -import lion.CustomUtil; import lion.Domain.GalleryTask; import lion.ErrorCode.ErrorCode; import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.ZipUtil; import lion.Message.AbstractMessage; -import lion.Message.Acclerator.FileTransferMessage; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.im4java.core.ConvertCmd; @@ -19,12 +16,7 @@ import org.im4java.core.IM4JavaException; import org.im4java.core.IMOperation; import java.io.*; -import java.net.InetSocketAddress; -import java.net.ServerSocket; -import java.net.Socket; -import java.nio.file.Files; import java.util.*; -import java.util.concurrent.ExecutionException; import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.ReentrantLock; @@ -142,14 +134,12 @@ public class DownloadCheckService { //thumbnail log.info("文件" + images[0].getName() + ",转换为thumbnail.webp"); - if(!convert_remote(galleryTask, images[0], true)) - convert_local(galleryTask, images[0], true); + convert_local(galleryTask, images[0], true); if ((galleryTask.getType() & GalleryTask.DOWNLOAD_PREVIEW) != 0) for (int i = 0; i < images.length; i++) { log.info("文件" + images[i].getName() + ",转换为webp[" + i + "/" + images.length + "]"); - if(!convert_remote(galleryTask, images[i], false)) - convert_local(galleryTask, images[i], false); + convert_local(galleryTask, images[i], false); } if ((galleryTask.getType() & GalleryTask.DOWNLOAD_SOURCE) != 0) { @@ -181,40 +171,4 @@ public class DownloadCheckService { galleryTask.setStatus(ErrorCode.COMPRESS_ERROR); } } - - public boolean convert_remote(GalleryTask galleryTask, File file, boolean isThumbnail){ - if(node == null || !node.isActive() || file.length() < 1024 * 1024 * 5) - return false; - int port = CustomUtil._findIdlePort(); - FileTransferMessage fileTransferMessage = new FileTransferMessage(); - fileTransferMessage.messageId = CustomUtil.counter.getAndIncrement(); - fileTransferMessage.setFilename(file.getName()); - fileTransferMessage.setPort(port); - fileTransferMessage.setThumbnail(isThumbnail); - - try(ServerSocket serverSocket = new ServerSocket(port); - InputStream inputStream = Files.newInputStream(file.toPath())){ - node.writeAndFlush(fileTransferMessage).sync(); - Socket socket = serverSocket.accept(); - inputStream.transferTo(socket.getOutputStream()); - socket.close(); - }catch (IOException | InterruptedException e){ - return false; - } - - DefaultPromise promise = new DefaultPromise<>(eventLoop); - promises.put(fileTransferMessage.messageId, promise); - try (Socket socket = new Socket()){ - boolean result = promise.await(20, TimeUnit.SECONDS); - if(!result) - return false; - fileTransferMessage = (FileTransferMessage) promise.get(); - socket.connect(new InetSocketAddress("side.lionwebsite.xyz", fileTransferMessage.getPort())); - FileOutputStream fileOutputStream = new FileOutputStream(storagePath + galleryTask.getName() + "/" + fileTransferMessage.getFilename()); - socket.getInputStream().transferTo(fileOutputStream); - return true; - } catch (InterruptedException | ExecutionException | IOException e) { - return false; - } - } } diff --git a/src/main/java/lion/storageNode.java b/src/main/java/lion/storageNode.java index aae452f..6f3ded5 100644 --- a/src/main/java/lion/storageNode.java +++ b/src/main/java/lion/storageNode.java @@ -3,12 +3,10 @@ package lion; import io.netty.util.concurrent.Promise; import lion.Domain.GalleryTask; import lion.Message.*; -import lion.Message.Acclerator.FileTransferMessage; import lion.Message.Main.*; import lion.Service.DeleteService; import lion.Service.DeliveryService; import lion.Service.DownloadCheckService; -import cn.hutool.core.io.FileUtil; import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.*; import io.netty.channel.nio.NioEventLoopGroup; @@ -59,7 +57,6 @@ public class storageNode { counter = 0; promises = new HashMap<>(); - channelFuture = new ServerBootstrap() .channel(NioServerSocketChannel.class) .group(new NioEventLoopGroup()) @@ -73,9 +70,8 @@ public class storageNode { }) .bind(26321); - try{ - new Socket().connect(new InetSocketAddress("lionwebsite.xyz", 26322)); - new Socket().connect(new InetSocketAddress("side.lionwebsite.xyz", 26322)); + try(Socket socket = new Socket()){ + socket.connect(new InetSocketAddress("lionwebsite.xyz", 26322)); } catch (Exception ignored) {} downloadCheckService = new DownloadCheckService(queue, promises); checkThreadPool = Executors.newScheduledThreadPool(1); @@ -134,12 +130,6 @@ public class storageNode { AbstractMessage abstractMessage = (AbstractMessage) msg; switch (abstractMessage.messageType){ - case AbstractMessage.FILE_TRANSFER_MESSAGE -> { - FileTransferMessage fileTransferMessage = (FileTransferMessage) abstractMessage; - Promise abstractMessagePromise = promises.get(fileTransferMessage.messageId); - if(abstractMessagePromise != null) - abstractMessagePromise.setSuccess(fileTransferMessage); - } case AbstractMessage.IDENTITY_MESSAGE -> { IdentityMessage identityMessage = (IdentityMessage) abstractMessage; if(identityMessage.getIdentity().equals("lionwebsite")) { @@ -161,15 +151,7 @@ public class storageNode { } case AbstractMessage.DELETE_GALLERY_MESSAGE -> { DeleteGalleryMessage deleteGalleryMessage = (DeleteGalleryMessage) abstractMessage; - byte result = switch (deleteGalleryMessage.getDeleteType()){ - case DeleteGalleryMessage.DELETE_ALL -> - DeleteService.deleteAll(storagePath + deleteGalleryMessage.getGalleryName()); - case DeleteGalleryMessage.DELETE_PREVIEW -> - DeleteService.deletePreview(storagePath + deleteGalleryMessage.getGalleryName()); - case DeleteGalleryMessage.DELETE_SOURCE -> - DeleteService.deleteSource(storagePath + deleteGalleryMessage.getGalleryName()); - default -> -1; - }; + byte result = DeleteService.deleteAll(storagePath + deleteGalleryMessage.getGalleryName()); ResponseMessage responseMessage = new ResponseMessage(deleteGalleryMessage.messageId, result); ctx.writeAndFlush(responseMessage); } @@ -182,15 +164,6 @@ public class storageNode { responseMessage.setResult(result); ctx.writeAndFlush(responseMessage); } - case AbstractMessage.UPDATE_GALLERY_MESSAGE -> { - UpdateGalleryMessage ugm = (UpdateGalleryMessage) abstractMessage; - FileUtil.del(storagePath + ugm.getGalleryTask().getName()); - lock.lock(); - queue.add(ugm.getGalleryTask()); - System.out.println(queue); - lock.unlock(); - ctx.writeAndFlush(new ResponseMessage(ugm.messageId, (byte) 0)); - } case AbstractMessage.GALLERY_PAGE_QUERY_MESSAGE -> { GalleryPageQueryMessage gpqm = (GalleryPageQueryMessage) abstractMessage; byte result = DeliveryService.pageQuery(gpqm);