Переглянути джерело

oss-store
1.删除 cn.reghao.jutil.media 依赖
2.删除 io.springfox 依赖
3.删除 com.github.oshi 依赖
4.io.jsonwebtoken 依赖升级版本到 0.12.6

reghao 5 місяців тому
батько
коміт
192bb33aeb

+ 2 - 2
oss-api/src/main/java/cn/reghao/oss/api/util/JwtUtil.java

@@ -1,6 +1,6 @@
 package cn.reghao.oss.api.util;
 
-import cn.reghao.oss.api.dto.OssPayload;
+import cn.reghao.jutil.jdk.model.jwt.OssPayload;
 import io.jsonwebtoken.Claims;
 import io.jsonwebtoken.Jwts;
 import io.jsonwebtoken.SignatureAlgorithm;
@@ -29,6 +29,6 @@ public class JwtUtil {
         String action = (String) claims.get("action");
         int channelCode = (Integer) claims.get("channelCode");
         String userIdStr = claims.getSubject();
-        return new OssPayload(action, channelCode, Integer.parseInt(userIdStr));
+        return new OssPayload(channelCode, action, Integer.parseInt(userIdStr));
     }
 }

+ 2 - 18
oss-store/pom.xml

@@ -50,11 +50,6 @@
             <artifactId>web</artifactId>
             <version>1.0.0-SNAPSHOT</version>
         </dependency>
-        <dependency>
-            <groupId>cn.reghao.jutil</groupId>
-            <artifactId>media</artifactId>
-            <version>1.0.0-SNAPSHOT</version>
-        </dependency>
         <dependency>
             <groupId>cn.reghao.oss</groupId>
             <artifactId>oss-api</artifactId>
@@ -146,8 +141,8 @@
 
         <dependency>
             <groupId>io.jsonwebtoken</groupId>
-            <artifactId>jjwt</artifactId>
-            <version>0.9.1</version>
+            <artifactId>jjwt-api</artifactId>
+            <version>0.12.6</version>
         </dependency>
         <dependency>
             <groupId>javax.xml.bind</groupId>
@@ -169,17 +164,6 @@
             <artifactId>activation</artifactId>
             <version>1.1.1</version>
         </dependency>
-
-        <dependency>
-            <groupId>io.springfox</groupId>
-            <artifactId>springfox-swagger2</artifactId>
-            <version>2.9.2</version>
-        </dependency>
-        <dependency>
-            <groupId>io.springfox</groupId>
-            <artifactId>springfox-swagger-ui</artifactId>
-            <version>2.9.2</version>
-        </dependency>
     </dependencies>
 
     <profiles>

+ 0 - 42
oss-store/src/main/java/cn/reghao/oss/store/config/SwaggerConfig.java

@@ -1,42 +0,0 @@
-package cn.reghao.oss.store.config;
-
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Profile;
-import springfox.documentation.builders.ApiInfoBuilder;
-import springfox.documentation.builders.PathSelectors;
-import springfox.documentation.builders.RequestHandlerSelectors;
-import springfox.documentation.service.ApiInfo;
-import springfox.documentation.spi.DocumentationType;
-import springfox.documentation.spring.web.plugins.Docket;
-import springfox.documentation.swagger2.annotations.EnableSwagger2;
-
-/**
- * 配置 Swagger
- *
- * @author reghao
- * @date 2019-05-14 17:01:07
- */
-@Profile({"dev"})
-@Configuration
-@EnableSwagger2
-public class SwaggerConfig {
-    @Bean
-    public Docket createRestApi() {
-        return new Docket(DocumentationType.SWAGGER_2)
-                .apiInfo(apiInfo())
-                .select()
-                .apis(RequestHandlerSelectors.basePackage("cn.reghao.oss.store"))
-                .paths(PathSelectors.any())
-                .build();
-    }
-
-    private ApiInfo apiInfo() {
-        return new ApiInfoBuilder()
-                .title("oss APIs")
-                .description("")
-                .termsOfServiceUrl("")
-                .version("1.0.0")
-                .build();
-    }
-}

+ 1 - 1
oss-store/src/main/java/cn/reghao/oss/store/config/inerceptor/TokenFilter.java

@@ -3,7 +3,7 @@ package cn.reghao.oss.store.config.inerceptor;
 import cn.reghao.oss.api.util.AuthContext;
 import cn.reghao.oss.api.util.JwtUtil;
 import cn.reghao.jutil.web.ServletUtil;
-import cn.reghao.oss.api.dto.OssPayload;
+import cn.reghao.jutil.jdk.model.jwt.OssPayload;
 import com.github.benmanes.caffeine.cache.Cache;
 import org.springframework.stereotype.Component;
 

+ 5 - 6
oss-store/src/main/java/cn/reghao/oss/store/controller/ObjectGetController.java

@@ -11,20 +11,19 @@ import cn.reghao.oss.store.service.GetObjectService;
 import cn.reghao.oss.api.util.JwtUtil;
 import cn.reghao.oss.store.util.ObjectUtil;
 import cn.reghao.oss.store.util.SignatureUtil;
-import cn.reghao.oss.api.dto.OssPayload;
+import cn.reghao.jutil.jdk.model.jwt.OssPayload;
 import com.github.benmanes.caffeine.cache.Cache;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 
 /**
+ * 对象访问接口
+ *
  * @author reghao
  * @date 2022-12-08 20:38:33
  */
-@Api(tags = "对象访问接口")
 @RestController
 public class ObjectGetController {
     private final GetObjectService getObjectService;
@@ -40,7 +39,7 @@ public class ObjectGetController {
         this.cache = cache;
     }
 
-    @ApiOperation(value = "使用 HEAD 方法判断对象是否存在")
+    // 使用 HEAD 方法判断对象是否存在
     @RequestMapping(value = "/**", method = RequestMethod.HEAD)
     public void headObject(@RequestParam(value = "sha256sum", required = false) String sha256sum) throws IOException {
         if (sha256sum != null) {
@@ -51,7 +50,7 @@ public class ObjectGetController {
         }
     }
 
-    @ApiOperation(value = "通过 objectName 访问对象")
+    // 通过 objectName 访问对象
     @GetMapping(value = "/**")
     public void getObject(@RequestParam(value = "token", required = false) String token,
                           @RequestParam(value = "t", required = false) Long timestamp,

+ 5 - 6
oss-store/src/main/java/cn/reghao/oss/store/controller/ObjectMultipartUploadController.java

@@ -2,7 +2,7 @@ package cn.reghao.oss.store.controller;
 
 import cn.reghao.jutil.web.ServletUtil;
 import cn.reghao.oss.api.dto.ObjectChannel;
-import cn.reghao.oss.api.dto.OssPayload;
+import cn.reghao.jutil.jdk.model.jwt.OssPayload;
 import cn.reghao.oss.api.util.AuthContext;
 import cn.reghao.oss.api.util.JwtUtil;
 import cn.reghao.oss.api.rest.UploadFilePart;
@@ -12,8 +12,6 @@ import cn.reghao.oss.store.service.ConsoleServiceWrapper;
 import cn.reghao.oss.store.service.ObjectMultipartUploadService;
 import cn.reghao.jutil.jdk.result.WebResult;
 import com.github.benmanes.caffeine.cache.Cache;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
 import org.springframework.http.ResponseEntity;
@@ -22,10 +20,11 @@ import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 /**
+ * 分片上传接口
+ *
  * @author reghao
  * @date 2022-12-08 20:40:55
  */
-@Api(tags = "分片上传接口")
 @RestController
 public class ObjectMultipartUploadController {
     private final ObjectMultipartUploadService objectMultipartUploadService;
@@ -39,7 +38,7 @@ public class ObjectMultipartUploadController {
         this.cache = cache;
     }
 
-    @ApiOperation(value = "获取已上传的对象分片")
+    // 获取已上传的对象分片
     @GetMapping(value = "/", params = {"multiparts"}, produces = MediaType.APPLICATION_JSON_VALUE)
     public ResponseEntity<String> getUploadedPart(UploadFilePart uploadFilePart) throws Exception {
         int channelCode = uploadFilePart.getChannelCode();
@@ -77,7 +76,7 @@ public class ObjectMultipartUploadController {
         return ResponseEntity.status(HttpStatus.OK).body(WebResult.success(uploadedPart));
     }
 
-    @ApiOperation(value = "上传对象分片")
+    // 上传对象分片
     @PostMapping(value = "/", params = {"multiparts"}, produces = MediaType.APPLICATION_JSON_VALUE)
     public ResponseEntity<String> uploadPart(MultipartFile file, @Validated UploadFilePart uploadFilePart) throws Exception {
         int channelCode = uploadFilePart.getChannelCode();

+ 6 - 7
oss-store/src/main/java/cn/reghao/oss/store/controller/ObjectUploadController.java

@@ -11,10 +11,8 @@ import cn.reghao.jutil.jdk.result.Result;
 import cn.reghao.jutil.jdk.result.WebResult;
 import cn.reghao.jutil.jdk.security.DigestUtil;
 import cn.reghao.jutil.web.ServletUtil;
-import cn.reghao.oss.api.dto.OssPayload;
+import cn.reghao.jutil.jdk.model.jwt.OssPayload;
 import com.github.benmanes.caffeine.cache.Cache;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
 import org.apache.commons.io.FileUtils;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
@@ -26,10 +24,11 @@ import java.io.File;
 import java.util.UUID;
 
 /**
+ * 对象上传接口
+ *
  * @author reghao
  * @date 2023-05-19 16:20:12
  */
-@Api(tags = "对象上传接口")
 @RestController
 public class ObjectUploadController {
     private final ChannelValidateService channelValidateService;
@@ -50,13 +49,13 @@ public class ObjectUploadController {
         this.cache = cache;
     }
 
-    @ApiOperation(value = "使用 PUT 方法上传对象")
+    // 使用 PUT 方法上传对象
     @PutMapping(value = "/**")
     public String putObject(@RequestBody File file) {
         return WebResult.failWithMsg("not implement");
     }
 
-    @ApiOperation(value = "使用 POST 方法上传对象")
+    // 使用 POST 方法上传对象
     @PostMapping(value = "/", produces = MediaType.APPLICATION_JSON_VALUE)
     public ResponseEntity<String> postObject(MultipartFile file, Integer channelCode, String objectName,
                                              String client, String sha256sum) throws Exception {
@@ -126,7 +125,7 @@ public class ObjectUploadController {
         return ResponseEntity.status(HttpStatus.OK).body(WebResult.success(uploadFileRet));
     }
 
-    @ApiOperation(value = "删除对象")
+    // 删除对象
     @DeleteMapping(value = "/")
     public ResponseEntity<String> deleteObject(String objectId) {
         //putObjectService.deleteObject(objectId);

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

@@ -1,10 +1,10 @@
 package cn.reghao.oss.store.rpc;
 
 import cn.reghao.jutil.jdk.db.PageList;
+import cn.reghao.jutil.jdk.model.jwt.OssPayload;
 import cn.reghao.jutil.jdk.security.RandomString;
 import cn.reghao.oss.api.constant.ChannelAction;
 import cn.reghao.oss.api.constant.ObjectScope;
-import cn.reghao.oss.api.dto.*;
 import cn.reghao.oss.api.dto.disk.DiskVolume;
 import cn.reghao.oss.api.dto.ObjectInfo;
 import cn.reghao.oss.api.dto.media.AudioInfo;
@@ -81,7 +81,7 @@ public class StoreServiceImpl implements StoreService {
         String secretKey = RandomString.getString(128);
         String action = ChannelAction.upload.getName();
         long expireAt = System.currentTimeMillis() + expire*1000L;
-        OssPayload ossPayload = new OssPayload(action, channelCode, owner);
+        OssPayload ossPayload = new OssPayload(channelCode, action, owner);
         String uploadToken = JwtUtil.createToken(ossPayload, expireAt, secretKey);
         cache.put(uploadToken, secretKey);
         return uploadToken;

+ 2 - 2
oss-store/src/main/java/cn/reghao/oss/store/service/SignService.java

@@ -4,7 +4,7 @@ import cn.reghao.jutil.jdk.security.RandomString;
 import cn.reghao.oss.api.util.JwtUtil;
 import cn.reghao.oss.store.util.SignatureUtil;
 import cn.reghao.oss.api.constant.ChannelAction;
-import cn.reghao.oss.api.dto.OssPayload;
+import cn.reghao.jutil.jdk.model.jwt.OssPayload;
 import com.github.benmanes.caffeine.cache.Cache;
 import org.springframework.stereotype.Service;
 
@@ -32,7 +32,7 @@ public class SignService {
 
         String action1 = ChannelAction.download.getName();
         String action = ChannelAction.access.getName();
-        OssPayload ossPayload = new OssPayload(action, channelCode, loginUser);
+        OssPayload ossPayload = new OssPayload(channelCode, action, loginUser);
 
         //String secretKey = consoleService.getSecretKey();
         String secretKey = RandomString.getString(128);

+ 7 - 7
oss-store/src/main/java/cn/reghao/oss/store/task/MediaFileProcessor.java

@@ -1,12 +1,12 @@
 package cn.reghao.oss.store.task;
 
-import cn.reghao.jutil.media.FFmpegWrapper;
-import cn.reghao.jutil.media.ImageOps;
-import cn.reghao.jutil.media.MediaQuality;
-import cn.reghao.jutil.media.MediaResolution;
-import cn.reghao.jutil.media.model.AudioProps;
-import cn.reghao.jutil.media.model.MediaProps;
-import cn.reghao.jutil.media.model.VideoProps;
+import cn.reghao.jutil.jdk.media.FFmpegWrapper;
+import cn.reghao.jutil.jdk.media.ImageOps;
+import cn.reghao.jutil.jdk.media.MediaQuality;
+import cn.reghao.jutil.jdk.media.MediaResolution;
+import cn.reghao.jutil.jdk.media.model.AudioProps;
+import cn.reghao.jutil.jdk.media.model.MediaProps;
+import cn.reghao.jutil.jdk.media.model.VideoProps;
 import cn.reghao.oss.api.dto.ObjectMeta;
 import cn.reghao.oss.api.dto.media.AudioInfo;
 import cn.reghao.oss.api.dto.media.ConvertedImageInfo;

+ 6 - 6
oss-store/src/main/java/cn/reghao/oss/store/task/VideoFileProcessor.java

@@ -7,15 +7,15 @@ import cn.reghao.oss.store.db.repository.ObjectRepository;
 import cn.reghao.oss.store.model.vo.ObjectProp;
 import cn.reghao.oss.store.service.FileStoreService;
 import cn.reghao.oss.store.service.PutObjectService;
-import cn.reghao.jutil.media.model.AudioProps;
-import cn.reghao.jutil.media.model.MediaProps;
-import cn.reghao.jutil.media.model.VideoProps;
+import cn.reghao.jutil.jdk.media.model.AudioProps;
+import cn.reghao.jutil.jdk.media.model.MediaProps;
+import cn.reghao.jutil.jdk.media.model.VideoProps;
 import cn.reghao.oss.store.model.vo.ObjectResult;
 import cn.reghao.oss.store.util.FileType;
 import cn.reghao.oss.store.service.ObjectNameService;
-import cn.reghao.jutil.media.FFmpegWrapper;
-import cn.reghao.jutil.media.MediaQuality;
-import cn.reghao.jutil.media.MediaResolution;
+import cn.reghao.jutil.jdk.media.FFmpegWrapper;
+import cn.reghao.jutil.jdk.media.MediaQuality;
+import cn.reghao.jutil.jdk.media.MediaResolution;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 

+ 0 - 5
oss-store/src/test/java/MediaTest.java

@@ -1,5 +1,3 @@
-import cn.reghao.jutil.media.FFmpegWrapper;
-import cn.reghao.jutil.media.model.MediaProps;
 import org.junit.jupiter.api.Test;
 
 /**
@@ -9,8 +7,5 @@ import org.junit.jupiter.api.Test;
 public class MediaTest {
     @Test
     public void videoTest() throws Exception {
-        String absolutePath = "/home/reghao/mnt/1/video/mmexport1715150192903.mp4";
-        MediaProps mediaProps = FFmpegWrapper.getMediaProps(absolutePath);
-        System.out.println();
     }
 }