reghao 1 kuukausi sitten
vanhempi
commit
2cd95d2dfb

+ 0 - 21
oss-api/src/main/java/cn/reghao/oss/api/dto/NodeProperties.java

@@ -1,21 +0,0 @@
-package cn.reghao.oss.api.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-import java.io.Serializable;
-
-/**
- * @author reghao
- * @date 2024-03-01 09:22:17
- */
-@AllArgsConstructor
-@Getter
-public class NodeProperties implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    private String domain;
-    private String secretKey;
-    private String referer;
-    private int owner;
-}

+ 0 - 29
oss-api/src/main/java/cn/reghao/oss/api/dto/OssStoreToken.java

@@ -1,29 +0,0 @@
-package cn.reghao.oss.api.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-
-/**
- * @author reghao
- * @date 2026-02-22 15:55:30
- */
-@NoArgsConstructor
-@AllArgsConstructor
-@Setter
-@Getter
-public class OssStoreToken {
-    private String action;
-    private int accessBy;
-    private long expireAt;
-    private String channelPrefix;
-    private String contentType;
-    private long maxSize;
-
-    public OssStoreToken(String action, int accessBy, long expireAt) {
-        this.action = action;
-        this.accessBy = accessBy;
-        this.expireAt = expireAt;
-    }
-}

+ 0 - 22
oss-api/src/main/java/cn/reghao/oss/api/dto/PhysicalFile.java

@@ -1,22 +0,0 @@
-package cn.reghao.oss.api.dto;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * @author reghao
- * @date 2026-02-01 15:50:05
- */
-@Setter
-@Getter
-public class PhysicalFile {
-    private String sha256Sum;
-    private String absolutePath;
-    private long size;
-    private String filename;
-    private String contentType;
-    private String objectId;
-    private String objectName;
-    private int uploadBy;
-    private String nodeAddress;
-}

+ 0 - 28
oss-api/src/main/java/cn/reghao/oss/api/dto/WebBody.java

@@ -1,28 +0,0 @@
-package cn.reghao.oss.api.dto;
-
-import cn.reghao.oss.api.dto.rest.UploadFileRet;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-
-/**
- * @author reghao
- * @date 2026-02-21 11:37:38
- */
-@AllArgsConstructor
-@NoArgsConstructor
-@Setter
-@Getter
-@Deprecated
-public class WebBody {
-    private int code;
-    private String msg;
-    private UploadFileRet uploadFileRet;
-
-    public WebBody(UploadFileRet uploadFileRet) {
-        this.code = 0;
-        this.msg = "success";
-        this.uploadFileRet = uploadFileRet;
-    }
-}

+ 4 - 4
oss-sdk/src/main/java/cn/reghao/oss/sdk/OssClient.java

@@ -299,10 +299,10 @@ public class OssClient {
         int statusCode = httpResponse.statusCode();
         if (statusCode == 200) {
             String body = httpResponse.body();
-            Type type = new TypeToken<WebBody>(){}.getType();
-            WebBody webBody = JsonConverter.jsonToObject(body, type);
-            if (webBody.getCode() == 0 ) {
-                return webBody.getUploadFileRet();
+            Type type = new TypeToken<WebResult<UploadFileRet>>(){}.getType();
+            WebResult<UploadFileRet> webResult = JsonConverter.jsonToObject(body, type);
+            if (webResult.getCode() == 0 ) {
+                return webResult.getData();
             }
         }
         return null;

+ 6 - 6
oss-store/src/main/java/cn/reghao/oss/store/handler/OssMultipartUploadHandler.java

@@ -306,8 +306,8 @@ public class OssMultipartUploadHandler extends SimpleChannelInboundHandler<HttpO
             // 返回成功响应
             String url = "";
             UploadFileRet uploadFileRet = new UploadFileRet(uploadId, url, true);
-            String webResult = WebResult.success(uploadFileRet);
-            ResponseHelper.sendJsonResponse(ctx, webResult);
+            String jsonResult = WebResult.success(uploadFileRet);
+            ResponseHelper.sendJsonResponse(ctx, jsonResult);
             return;
         }
 
@@ -345,13 +345,13 @@ public class OssMultipartUploadHandler extends SimpleChannelInboundHandler<HttpO
             // 4. 返回成功响应
             String url = "";
             UploadFileRet uploadFileRet = new UploadFileRet(currentUploadId, url, true);
-            String webResult = WebResult.success(uploadFileRet);
-            ResponseHelper.sendJsonResponse(ctx, webResult);
+            String jsonResult = WebResult.success(uploadFileRet);
+            ResponseHelper.sendJsonResponse(ctx, jsonResult);
             log.info("{} 的分片上传已完成并已回写响应", currentUploadId);
         } else {
             UploadFileRet uploadFileRet = new UploadFileRet(currentUploadId);
-            String webResult = WebResult.success(uploadFileRet);
-            ResponseHelper.sendJsonResponse(ctx, webResult);
+            String jsonResult = WebResult.success(uploadFileRet);
+            ResponseHelper.sendJsonResponse(ctx, jsonResult);
 
             int currentChunkNumber = Integer.parseInt(formData.get("chunkNumber"));
             log.info("分片 {} 写入完成并已回写响应", currentChunkNumber);

+ 4 - 5
oss-store/src/main/java/cn/reghao/oss/store/handler/OssUploadHandler.java

@@ -3,7 +3,6 @@ package cn.reghao.oss.store.handler;
 import cn.reghao.jutil.jdk.web.result.WebResult;
 import cn.reghao.oss.api.dto.FastUploadResult;
 import cn.reghao.oss.api.dto.UploadResult;
-import cn.reghao.oss.api.dto.WebBody;
 import cn.reghao.oss.api.dto.rest.UploadFileRet;
 import cn.reghao.oss.api.iface.ConsoleService;
 import cn.reghao.oss.store.config.OssStoreConfig;
@@ -96,8 +95,8 @@ public class OssUploadHandler extends SimpleChannelInboundHandler<HttpObject> {
                 // 返回成功响应
                 String url = "";
                 UploadFileRet uploadFileRet = new UploadFileRet(uploadId, url, true);
-                String webResult = WebResult.success(uploadFileRet);
-                ResponseHelper.sendJsonResponse(ctx, webResult);
+                String jsonResult = WebResult.success(uploadFileRet);
+                ResponseHelper.sendJsonResponse(ctx, jsonResult);
                 ctx.channel().attr(SKIP_BODY).set(true);
                 return;
             }
@@ -171,8 +170,8 @@ public class OssUploadHandler extends SimpleChannelInboundHandler<HttpObject> {
 
             String url = "";
             UploadFileRet uploadFileRet = new UploadFileRet(uploadId, url);
-            WebBody webBody = new WebBody(uploadFileRet);
-            ResponseHelper.sendJsonResponse(ctx, HttpResponseStatus.OK, webBody);
+            String jsonResult = WebResult.success(uploadFileRet);
+            ResponseHelper.sendJsonResponse(ctx, jsonResult);
         }
     }
 

+ 6 - 4
oss-store/src/main/java/cn/reghao/oss/store/media/VideoFileProcessor.java → oss-store/src/main/java/cn/reghao/oss/store/media/FFmpegWrapper.java

@@ -18,7 +18,7 @@ import java.util.regex.Pattern;
  * @date 2026-02-04 16:45:16
  */
 @Slf4j
-public class VideoFileProcessor {
+public class FFmpegWrapper {
     private final static String ffprobe = "/usr/bin/ffprobe";
     private final static String ffmpeg = "/usr/bin/ffmpeg";
     private static final ObjectMapper mapper = new ObjectMapper();
@@ -86,8 +86,7 @@ public class VideoFileProcessor {
         try {
             ShellResult shellResult = ShellWrapper.executeWithResult(command);
             if (shellResult.getExitCode() != 0) {
-                String errorMsg = String.format("exec failed");
-                throw new RuntimeException(errorMsg);
+                throw new RuntimeException("exec failed");
             } else if (!shellResult.getStdout().isEmpty() || !shellResult.getStderr().isEmpty()) {
                 String errorMsg = String.format("video %s invalid", inputFile.getAbsolutePath());
                 throw new RuntimeException(errorMsg);
@@ -222,7 +221,10 @@ public class VideoFileProcessor {
         }
     }
 
-    public static void process(File videoFile) {
+    public static void main(String[] args) {
+        String path = "";
+        File videoFile = new File(path);
+
         // 1.检测是否为视频文件
         // 2.检查视频文件是否损坏
         // 3.将视频文件转码为可在 web 播放的格式

+ 2 - 3
oss-store/src/main/java/cn/reghao/oss/store/rpc/StoreServiceImpl.java

@@ -8,10 +8,9 @@ import cn.reghao.oss.api.dto.media.VideoInfo;
 import cn.reghao.oss.api.iface.StoreService;
 import cn.reghao.oss.api.util.OssSamplingHash;
 import cn.reghao.oss.store.disk.DiskService;
-import cn.reghao.oss.store.media.VideoFileProcessor;
+import cn.reghao.oss.store.media.FFmpegWrapper;
 import com.fasterxml.jackson.databind.JsonNode;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.io.FileUtils;
 import org.apache.dubbo.config.annotation.DubboService;
 import org.springframework.stereotype.Service;
 
@@ -70,7 +69,7 @@ public class StoreServiceImpl implements StoreService {
             }
 
             log.info("{}", file.getAbsolutePath());
-            JsonNode jsonNode = VideoFileProcessor.getVideoMetadata(file.getAbsolutePath());
+            JsonNode jsonNode = FFmpegWrapper.getVideoMetadata(file.getAbsolutePath());
             VideoInfo videoInfo = parseVideoInfo(jsonNode);
             videoInfo.setObjectId(objectId);
             videoInfo.setUrlType("mp4");

+ 0 - 28
oss-store/src/main/java/cn/reghao/oss/store/util/ResponseHelper.java

@@ -1,15 +1,10 @@
 package cn.reghao.oss.store.util;
 
-import cn.reghao.oss.api.dto.WebBody;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import io.netty.buffer.ByteBuf;
-import io.netty.buffer.ByteBufOutputStream;
 import io.netty.buffer.Unpooled;
 import io.netty.channel.ChannelHandlerContext;
 import io.netty.handler.codec.http.*;
 import lombok.extern.slf4j.Slf4j;
 
-import java.io.OutputStream;
 import java.nio.charset.StandardCharsets;
 
 /**
@@ -18,29 +13,6 @@ import java.nio.charset.StandardCharsets;
  */
 @Slf4j
 public class ResponseHelper {
-    private static final ObjectMapper mapper = new ObjectMapper();
-
-    public static void sendJsonResponse(ChannelHandlerContext ctx, HttpResponseStatus status, WebBody webBody) {
-        // 1. 申请池化 ByteBuf
-        ByteBuf content = ctx.alloc().buffer();
-        try {
-            // 2. 利用 ByteBufOutputStream 减少中间 String 拷贝
-            try (ByteBufOutputStream os = new ByteBufOutputStream(content)) {
-                mapper.writeValue((OutputStream)os, webBody);
-            }
-
-            FullHttpResponse response = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, status, content);
-            response.headers().set(HttpHeaderNames.CONTENT_TYPE, "application/json; charset=UTF-8");
-            // 明确指定 Content-Length,否则某些客户端会一直等待 Body 结束
-            response.headers().set(HttpHeaderNames.CONTENT_LENGTH, content.readableBytes());
-            ctx.writeAndFlush(response);
-
-        } catch (Exception e) {
-            content.release(); // 异常时手动释放
-            log.error("JSON 序列化失败", e);
-        }
-    }
-
     public static void sendJsonResponse(ChannelHandlerContext ctx, String jsonBody) {
         FullHttpResponse response = new DefaultFullHttpResponse(
                 HttpVersion.HTTP_1_1, HttpResponseStatus.OK,

+ 1 - 1
pom.xml

@@ -27,7 +27,7 @@
         <dependency>
             <groupId>com.github.reghao.jutil</groupId>
             <artifactId>jdk</artifactId>
-            <version>65a0ede5</version>
+            <version>5425b5d83c</version>
         </dependency>
 
         <dependency>