瀏覽代碼

删除所有冗余代码, 只作为一个纯粹的对象存储服务

reghao 3 年之前
父節點
當前提交
9b8c5b7cdb
共有 100 個文件被更改,包括 76 次插入2066 次删除
  1. 5 28
      pom.xml
  2. 2 2
      src/main/java/cn/reghao/dfs/store/config/SwaggerConfig.java
  3. 4 5
      src/main/java/cn/reghao/dfs/store/controller/BucketBasicController.java
  4. 1 7
      src/main/java/cn/reghao/dfs/store/controller/BucketController.java
  5. 0 52
      src/main/java/cn/reghao/dfs/store/controller/FileController.java
  6. 0 33
      src/main/java/cn/reghao/dfs/store/controller/FileDownloadController.java
  7. 0 49
      src/main/java/cn/reghao/dfs/store/controller/FileUploadController.java
  8. 0 60
      src/main/java/cn/reghao/dfs/store/controller/ImageFileController.java
  9. 0 69
      src/main/java/cn/reghao/dfs/store/controller/ImageUploadController.java
  10. 10 12
      src/main/java/cn/reghao/dfs/store/controller/ObjectBasicController.java
  11. 1 2
      src/main/java/cn/reghao/dfs/store/controller/ObjectController.java
  12. 3 4
      src/main/java/cn/reghao/dfs/store/controller/ObjectMultipartUploadController.java
  13. 2 2
      src/main/java/cn/reghao/dfs/store/controller/ServiceController.java
  14. 0 116
      src/main/java/cn/reghao/dfs/store/controller/VideoFileController.java
  15. 0 86
      src/main/java/cn/reghao/dfs/store/controller/VideoUploadController.java
  16. 2 2
      src/main/java/cn/reghao/dfs/store/db/mapper/BucketMapper.java
  17. 2 2
      src/main/java/cn/reghao/dfs/store/db/mapper/DataBlockMapper.java
  18. 0 20
      src/main/java/cn/reghao/dfs/store/db/mapper/FileInfoMapper.java
  19. 6 3
      src/main/java/cn/reghao/dfs/store/db/mapper/FileMetaMapper.java
  20. 3 3
      src/main/java/cn/reghao/dfs/store/db/mapper/FileTypeMapper.java
  21. 0 21
      src/main/java/cn/reghao/dfs/store/db/mapper/FileUrlMapper.java
  22. 0 18
      src/main/java/cn/reghao/dfs/store/db/mapper/FileUserMapper.java
  23. 0 14
      src/main/java/cn/reghao/dfs/store/db/mapper/ImageFileMapper.java
  24. 2 2
      src/main/java/cn/reghao/dfs/store/db/mapper/RegionMapper.java
  25. 0 24
      src/main/java/cn/reghao/dfs/store/db/mapper/VideoFileMapper.java
  26. 0 17
      src/main/java/cn/reghao/dfs/store/db/mapper/VideoUrlMapper.java
  27. 0 138
      src/main/java/cn/reghao/dfs/store/db/repository/FileRepository.java
  28. 0 34
      src/main/java/cn/reghao/dfs/store/meta/RocksClient.java
  29. 0 38
      src/main/java/cn/reghao/dfs/store/model/constant/FileType.java
  30. 0 15
      src/main/java/cn/reghao/dfs/store/model/constant/VideoUrlType.java
  31. 1 1
      src/main/java/cn/reghao/dfs/store/model/dto/DeleteObjects.java
  32. 0 22
      src/main/java/cn/reghao/dfs/store/model/dto/DownloadFile.java
  33. 0 28
      src/main/java/cn/reghao/dfs/store/model/dto/FileDto.java
  34. 0 19
      src/main/java/cn/reghao/dfs/store/model/dto/FileInfoDto.java
  35. 1 1
      src/main/java/cn/reghao/dfs/store/model/dto/GetBucket.java
  36. 1 1
      src/main/java/cn/reghao/dfs/store/model/dto/PostObject.java
  37. 0 21
      src/main/java/cn/reghao/dfs/store/model/dto/SyncFile.java
  38. 0 44
      src/main/java/cn/reghao/dfs/store/model/dto/UploadFilePart.java
  39. 0 33
      src/main/java/cn/reghao/dfs/store/model/dto/UploadPart.java
  40. 0 30
      src/main/java/cn/reghao/dfs/store/model/dto/UploadPrepare.java
  41. 0 22
      src/main/java/cn/reghao/dfs/store/model/dto/UploadedFile.java
  42. 0 30
      src/main/java/cn/reghao/dfs/store/model/dto/UploadingFile.java
  43. 0 21
      src/main/java/cn/reghao/dfs/store/model/dto/VideoCover.java
  44. 0 28
      src/main/java/cn/reghao/dfs/store/model/dto/VideoFileSbt.java
  45. 1 1
      src/main/java/cn/reghao/dfs/store/model/po/Bucket.java
  46. 1 1
      src/main/java/cn/reghao/dfs/store/model/po/ContentRange.java
  47. 1 1
      src/main/java/cn/reghao/dfs/store/model/po/DataBlock.java
  48. 0 40
      src/main/java/cn/reghao/dfs/store/model/po/FileInfo.java
  49. 1 1
      src/main/java/cn/reghao/dfs/store/model/po/FileMeta.java
  50. 0 21
      src/main/java/cn/reghao/dfs/store/model/po/FilePath.java
  51. 1 1
      src/main/java/cn/reghao/dfs/store/model/po/FileType.java
  52. 0 20
      src/main/java/cn/reghao/dfs/store/model/po/FileUrl.java
  53. 0 27
      src/main/java/cn/reghao/dfs/store/model/po/FileUser.java
  54. 0 26
      src/main/java/cn/reghao/dfs/store/model/po/ImageFile.java
  55. 1 1
      src/main/java/cn/reghao/dfs/store/model/po/Region.java
  56. 0 44
      src/main/java/cn/reghao/dfs/store/model/po/VideoFile.java
  57. 0 23
      src/main/java/cn/reghao/dfs/store/model/po/VideoUrl.java
  58. 1 1
      src/main/java/cn/reghao/dfs/store/model/po/bucket/CorsConfiguration.java
  59. 1 1
      src/main/java/cn/reghao/dfs/store/model/po/bucket/CorsRule.java
  60. 1 1
      src/main/java/cn/reghao/dfs/store/model/po/bucket/Expiration.java
  61. 1 1
      src/main/java/cn/reghao/dfs/store/model/po/bucket/Filter.java
  62. 1 1
      src/main/java/cn/reghao/dfs/store/model/po/bucket/LifecycleConfiguration.java
  63. 1 1
      src/main/java/cn/reghao/dfs/store/model/po/bucket/Rule.java
  64. 1 1
      src/main/java/cn/reghao/dfs/store/model/po/bucket/Transition.java
  65. 0 21
      src/main/java/cn/reghao/dfs/store/model/vo/CacheResult.java
  66. 1 1
      src/main/java/cn/reghao/dfs/store/model/vo/CompleteMultipartUpload.java
  67. 1 1
      src/main/java/cn/reghao/dfs/store/model/vo/Contents.java
  68. 1 1
      src/main/java/cn/reghao/dfs/store/model/vo/Delete.java
  69. 1 1
      src/main/java/cn/reghao/dfs/store/model/vo/DeleteResult.java
  70. 1 1
      src/main/java/cn/reghao/dfs/store/model/vo/Deleted.java
  71. 1 1
      src/main/java/cn/reghao/dfs/store/model/vo/Error.java
  72. 0 15
      src/main/java/cn/reghao/dfs/store/model/vo/FileMap.java
  73. 0 28
      src/main/java/cn/reghao/dfs/store/model/vo/FilePartRet.java
  74. 0 18
      src/main/java/cn/reghao/dfs/store/model/vo/ImageFileRet.java
  75. 1 1
      src/main/java/cn/reghao/dfs/store/model/vo/InitiateMultipartUploadResult.java
  76. 1 1
      src/main/java/cn/reghao/dfs/store/model/vo/Initiator.java
  77. 1 1
      src/main/java/cn/reghao/dfs/store/model/vo/ListBucketResult.java
  78. 1 1
      src/main/java/cn/reghao/dfs/store/model/vo/ListPartsResult.java
  79. 1 1
      src/main/java/cn/reghao/dfs/store/model/vo/Object.java
  80. 1 1
      src/main/java/cn/reghao/dfs/store/model/vo/Owner.java
  81. 1 1
      src/main/java/cn/reghao/dfs/store/model/vo/Part.java
  82. 1 1
      src/main/java/cn/reghao/dfs/store/model/vo/PostResponse.java
  83. 0 13
      src/main/java/cn/reghao/dfs/store/model/vo/UploadFileRet.java
  84. 0 16
      src/main/java/cn/reghao/dfs/store/model/vo/UploadPrepareRet.java
  85. 0 17
      src/main/java/cn/reghao/dfs/store/model/vo/VideoFileInfo.java
  86. 0 32
      src/main/java/cn/reghao/dfs/store/model/vo/VideoFileRet.java
  87. 1 1
      src/main/java/cn/reghao/dfs/store/model/vo/service/Bucket.java
  88. 2 2
      src/main/java/cn/reghao/dfs/store/model/vo/service/ListAllMyBucketsResult.java
  89. 0 86
      src/main/java/cn/reghao/dfs/store/oss/controller/BucketBasicJsonController.java
  90. 0 166
      src/main/java/cn/reghao/dfs/store/oss/controller/ObjectBasicJsonController.java
  91. 0 39
      src/main/java/cn/reghao/dfs/store/oss/controller/RegionBasicJsonController.java
  92. 0 17
      src/main/java/cn/reghao/dfs/store/oss/db/mapper/FileTypeMapper.java
  93. 0 32
      src/main/java/cn/reghao/dfs/store/oss/model/dto/json/CreateBucket.java
  94. 0 28
      src/main/java/cn/reghao/dfs/store/oss/model/dto/json/CreateFolder.java
  95. 0 16
      src/main/java/cn/reghao/dfs/store/oss/model/dto/json/FileIcon.java
  96. 0 25
      src/main/java/cn/reghao/dfs/store/oss/model/dto/json/GenerateSignedUrl.java
  97. 0 15
      src/main/java/cn/reghao/dfs/store/oss/model/dto/json/GenerateSignedUrlResult.java
  98. 0 29
      src/main/java/cn/reghao/dfs/store/oss/model/dto/json/GetObjects.java
  99. 0 20
      src/main/java/cn/reghao/dfs/store/oss/model/dto/json/HeadObject.java
  100. 0 23
      src/main/java/cn/reghao/dfs/store/oss/model/dto/json/HeadObjectResult.java

+ 5 - 28
pom.xml

@@ -41,6 +41,11 @@
             <artifactId>web</artifactId>
             <version>1.0.0-SNAPSHOT</version>
         </dependency>
+        <dependency>
+            <groupId>cn.reghao.dfs</groupId>
+            <artifactId>dfs-common</artifactId>
+            <version>1.0.0-SNAPSHOT</version>
+        </dependency>
 
         <dependency>
             <groupId>org.projectlombok</groupId>
@@ -95,23 +100,6 @@
             <version>31.1-jre</version>
         </dependency>
 
-        <dependency>
-            <groupId>org.bytedeco</groupId>
-            <artifactId>javacv</artifactId>
-            <version>1.5.2</version>
-        </dependency>
-        <dependency>
-            <groupId>org.bytedeco</groupId>
-            <artifactId>javacpp</artifactId>
-            <version>1.5.2</version>
-        </dependency>
-        <dependency>
-            <groupId>org.bytedeco</groupId>
-            <artifactId>ffmpeg</artifactId>
-            <version>4.2.1-1.5.2</version>
-            <classifier>linux-x86_64</classifier>
-        </dependency>
-
         <dependency>
             <groupId>io.springfox</groupId>
             <artifactId>springfox-swagger2</artifactId>
@@ -123,11 +111,6 @@
             <version>2.9.2</version>
         </dependency>
 
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-actuator</artifactId>
-        </dependency>
-
         <dependency>
             <groupId>io.jsonwebtoken</groupId>
             <artifactId>jjwt</artifactId>
@@ -153,12 +136,6 @@
             <artifactId>activation</artifactId>
             <version>1.1.1</version>
         </dependency>
-
-        <dependency>
-            <groupId>org.rocksdb</groupId>
-            <artifactId>rocksdbjni</artifactId>
-            <version>6.6.4</version>
-        </dependency>
     </dependencies>
 
     <profiles>

+ 2 - 2
src/main/java/cn/reghao/dfs/store/config/SwaggerConfig.java

@@ -18,7 +18,7 @@ import springfox.documentation.swagger2.annotations.EnableSwagger2;
  * @author reghao
  * @date 2019-05-14 17:01:07
  */
-@Profile({"dev", "test"})
+@Profile({"dev"})
 @Configuration
 @EnableSwagger2
 public class SwaggerConfig {
@@ -34,7 +34,7 @@ public class SwaggerConfig {
 
     private ApiInfo apiInfo() {
         return new ApiInfoBuilder()
-                .title("FileService APIs")
+                .title("OSS APIs")
                 .description("")
                 .termsOfServiceUrl("")
                 .version("1.0.0")

+ 4 - 5
src/main/java/cn/reghao/dfs/store/oss/controller/BucketBasicController.java → src/main/java/cn/reghao/dfs/store/controller/BucketBasicController.java

@@ -1,8 +1,8 @@
-package cn.reghao.dfs.store.oss.controller;
+package cn.reghao.dfs.store.controller;
 
-import cn.reghao.dfs.store.oss.model.dto.GetBucket;
-import cn.reghao.dfs.store.oss.model.vo.ListBucketResult;
-import cn.reghao.dfs.store.oss.service.BucketService;
+import cn.reghao.dfs.store.model.dto.GetBucket;
+import cn.reghao.dfs.store.model.vo.ListBucketResult;
+import cn.reghao.dfs.store.service.BucketService;
 import cn.reghao.jutil.jdk.result.WebBody;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -16,7 +16,6 @@ import org.springframework.web.bind.annotation.*;
  */
 @Api(tags = "存储桶基础操作接口")
 @RestController
-@RequestMapping("/bucket")
 public class BucketBasicController {
     private final BucketService bucketService;
 

+ 1 - 7
src/main/java/cn/reghao/dfs/store/oss/controller/BucketController.java → src/main/java/cn/reghao/dfs/store/controller/BucketController.java

@@ -1,23 +1,17 @@
-package cn.reghao.dfs.store.oss.controller;
+package cn.reghao.dfs.store.controller;
 
-import cn.reghao.dfs.store.oss.model.po.FileMeta;
-import cn.reghao.dfs.store.oss.model.vo.ListBucketResult;
-import cn.reghao.dfs.store.oss.service.BucketService;
 import cn.reghao.jutil.jdk.result.WebBody;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.List;
-
 /**
  * @author reghao
  * @date 2022-11-21 15:12:11
  */
 @Api(tags = "存储桶接口")
 @RestController
-@RequestMapping("/bucket")
 public class BucketController {
     @ApiOperation(value = "删除指定存储桶的 CORS 配置")
     @DeleteMapping(value = "/", params = {"cors"}, produces = MediaType.APPLICATION_XML_VALUE)

+ 0 - 52
src/main/java/cn/reghao/dfs/store/controller/FileController.java

@@ -1,52 +0,0 @@
-package cn.reghao.dfs.store.controller;
-
-import cn.reghao.dfs.store.util.store.LocalStore;
-import cn.reghao.dfs.store.util.store.LocalStores;
-import cn.reghao.dfs.store.util.store.StoreDir;
-import cn.reghao.jutil.jdk.result.WebBody;
-import cn.reghao.dfs.store.db.repository.FileRepository;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.apache.ibatis.annotations.Param;
-import org.springframework.http.MediaType;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2022-06-20 13:46:12
- */
-@Api(tags = "文件服务接口")
-@RestController
-@RequestMapping("/api/file/")
-public class FileController {
-    private final FileRepository fileRepository;
-
-    public FileController(FileRepository fileRepository) {
-        this.fileRepository = fileRepository;
-    }
-
-    @ApiOperation(value = "删除已上传的文件")
-    @DeleteMapping(value = "/rm/{uploadId}", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String deleteFile(@PathVariable("uploadId") String uploadId) {
-        fileRepository.deleteFile(uploadId);
-        String msg = String.format("%s 已删除", uploadId);
-        return WebBody.success(msg);
-    }
-
-    @ApiOperation("获取文件存储")
-    @GetMapping(value = "/store", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String localStores() {
-        List<LocalStore> list = LocalStores.getLocalStores();
-        return WebBody.success(list);
-    }
-
-    @ApiOperation("获取文件存储")
-    @GetMapping(value = "/store/dir", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String localStoreDirs(@Param("blockId") String blockId) {
-        List<StoreDir> list = LocalStores.getStoreDir1(blockId);
-        List<StoreDir> list1 = LocalStores.getStoreDirs();
-        return WebBody.success(list);
-    }
-}

+ 0 - 33
src/main/java/cn/reghao/dfs/store/controller/FileDownloadController.java

@@ -1,33 +0,0 @@
-package cn.reghao.dfs.store.controller;
-
-import cn.reghao.dfs.store.model.dto.DownloadFile;
-import cn.reghao.dfs.store.service.FileDownloadService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-import java.io.*;
-
-/**
- * @author reghao
- * @date 2020-03-11 16:10:16
- */
-@Slf4j
-@Api(tags = "文件下载接口")
-@RestController
-@RequestMapping("/api/file/dl")
-public class FileDownloadController {
-    private final FileDownloadService fileDownloadService;
-
-    public FileDownloadController(FileDownloadService fileDownloadService) {
-        this.fileDownloadService = fileDownloadService;
-    }
-
-    @ApiOperation(value = "下载文件")
-    @GetMapping("/single")
-    public void download(@Validated DownloadFile downloadFile) throws IOException {
-        fileDownloadService.download(downloadFile);
-    }
-}

+ 0 - 49
src/main/java/cn/reghao/dfs/store/controller/FileUploadController.java

@@ -1,49 +0,0 @@
-package cn.reghao.dfs.store.controller;
-
-import cn.reghao.dfs.store.model.dto.UploadFilePart;
-import cn.reghao.dfs.store.model.dto.UploadPrepare;
-import cn.reghao.dfs.store.service.FileUploadService;
-import cn.reghao.jutil.jdk.result.WebBody;
-import cn.reghao.dfs.store.model.vo.FilePartRet;
-import cn.reghao.dfs.store.model.vo.UploadPrepareRet;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.http.MediaType;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-
-/**
- * @author reghao
- * @date 2020-03-11 16:10:16
- */
-@Api(tags = "文件上传接口")
-@RestController
-@RequestMapping("/api/file/upload")
-public class FileUploadController {
-    private final FileUploadService fileUploadService;
-
-    public FileUploadController(FileUploadService fileUploadService) {
-        this.fileUploadService = fileUploadService;
-    }
-
-    @ApiOperation("文件上传前的准备, 客户端传递文件的 sha256sum, 文件若存在则直接返回文件关联的 id")
-    @PostMapping("/prepare")
-    public String uploadFilePrepare(@RequestBody @Validated UploadPrepare uploadPrepare) {
-        UploadPrepareRet uploadPrepareRet = fileUploadService.prepareUpload(uploadPrepare);
-        return WebBody.success(uploadPrepareRet);
-    }
-
-    @ApiOperation(value = "单个文件上传")
-    @PostMapping(value = "/single", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String uploadFile(MultipartFile multipartFile) throws Exception {
-        return WebBody.success();
-    }
-
-    @ApiOperation("分片文件上传")
-    @PostMapping("/part")
-    public String uploadFilePart(@Validated UploadFilePart uploadFilePart) throws Exception {
-        FilePartRet filePartRet = fileUploadService.putFilePart(uploadFilePart);
-        return WebBody.success(filePartRet);
-    }
-}

+ 0 - 60
src/main/java/cn/reghao/dfs/store/controller/ImageFileController.java

@@ -1,60 +0,0 @@
-package cn.reghao.dfs.store.controller;
-
-import cn.reghao.dfs.store.model.dto.PathUrl;
-import cn.reghao.dfs.store.service.FileUrlService;
-import cn.reghao.dfs.store.service.media.ImageFileService;
-import io.swagger.annotations.Api;
-import org.springframework.core.io.InputStreamResource;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.MediaType;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.*;
-
-import java.io.*;
-
-/**
- * @author reghao
- * @date 2022-04-24 16:13:10
- */
-@Api(tags = "图片文件访问接口")
-@RestController
-@RequestMapping
-public class ImageFileController {
-    private final FileUrlService fileUrlService;
-    private final ImageFileService imageFileService;
-
-    public ImageFileController(FileUrlService fileUrlService, ImageFileService imageFileService) {
-        this.fileUrlService = fileUrlService;
-        this.imageFileService = imageFileService;
-    }
-
-    @GetMapping("/image/{filename:.+}")
-    public ResponseEntity<InputStreamResource> image(@PathVariable("filename") String filename) throws Exception {
-        String[] strs = filename.split("@");
-        String uploadId = strs[0].split("\\.")[0];
-        PathUrl pathUrl = fileUrlService.getPathUrl(uploadId);
-        if (pathUrl == null) {
-            return ResponseEntity.status(HttpStatus.NOT_FOUND).body(null);
-        }
-
-        String absolutePath = pathUrl.getAbsolutePath();
-        InputStream inputStream;
-        if (strs.length == 1) {
-            inputStream = new FileInputStream(absolutePath);
-        } else {
-            String[] params = strs[1].split("_");
-            int width = Integer.parseInt(params[0].replace("w", ""));
-            int height = Integer.parseInt(params[1].replace("h", ""));
-            // TODO 在 response header 中会有 Content-Disposition  inline;filename=f.txt 浏览器标签栏显示的名字是 f.txt
-            inputStream = imageFileService.getImageStream(absolutePath, width, height);
-        }
-
-        InputStreamResource inputStreamResource = new InputStreamResource(inputStream);
-        HttpHeaders httpHeaders = new HttpHeaders();
-        httpHeaders.set("Pragma", "No-cache");
-        httpHeaders.set("Cache-Control", "no-cache");
-        return ResponseEntity.status(HttpStatus.OK).headers(httpHeaders).contentType(MediaType.IMAGE_JPEG)
-                .body(inputStreamResource);
-    }
-}

+ 0 - 69
src/main/java/cn/reghao/dfs/store/controller/ImageUploadController.java

@@ -1,69 +0,0 @@
-package cn.reghao.dfs.store.controller;
-
-import cn.reghao.dfs.store.model.dto.*;
-import cn.reghao.dfs.store.model.vo.*;
-import cn.reghao.dfs.store.service.FileUploadService;
-import cn.reghao.dfs.store.service.media.ImageFileService;
-import cn.reghao.dfs.store.service.media.MediaResolution;
-import cn.reghao.jutil.jdk.result.WebBody;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.http.MediaType;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.validation.constraints.NotNull;
-
-/**
- * @author reghao
- * @date 2022-04-28 13:56:13
- */
-@Api(tags = "图片文件上传接口")
-@RestController
-@RequestMapping("/api/file/upload")
-@Slf4j
-public class ImageUploadController {
-    private final FileUploadService fileUploadService;
-    private final ImageFileService imageFileService;
-
-    public ImageUploadController(FileUploadService fileUploadService, ImageFileService imageFileService) {
-        this.fileUploadService = fileUploadService;
-        this.imageFileService = imageFileService;
-    }
-
-    @ApiOperation(value = "上传小图片(小于 1MiB)")
-    @PostMapping(value = "/img", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String uploadSmallImage(@NotNull MultipartFile file) throws Exception {
-        String contentType = file.getContentType();
-        if (contentType == null || !contentType.startsWith("image")) {
-            return WebBody.failWithMsg("content-type 错误");
-        }
-
-        long size = file.getSize();
-        if (size > 1024*1024) {
-            return WebBody.failWithMsg("仅支持小于 1MiB 的图片");
-        }
-
-        UploadingFile uploadingFile = new UploadingFile(file);
-        UploadedFile uploadedFile = fileUploadService.put(uploadingFile);
-        ImageFileRet imageFileRet = imageFileService.process(uploadedFile, MediaResolution.p144);
-
-        UploadFileRet uploadFileRet = new UploadFileRet(uploadedFile.getUploadId(), uploadedFile.getPathUrl().getUrl());
-        return WebBody.success(uploadFileRet);
-    }
-
-    @ApiOperation(value = "上传图片文件")
-    @PostMapping(value = "/image", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String uploadImageFile(@NotNull MultipartFile file) throws Exception {
-        String contentType = file.getContentType();
-        if (contentType == null || !contentType.startsWith("image")) {
-            return WebBody.failWithMsg("content-type 错误");
-        }
-
-        UploadingFile uploadingFile = new UploadingFile(file);
-        UploadedFile uploadedFile = fileUploadService.put(uploadingFile);
-        ImageFileRet imageFileRet = imageFileService.process(uploadedFile, MediaResolution.p144);
-        return WebBody.success(imageFileRet);
-    }
-}

+ 10 - 12
src/main/java/cn/reghao/dfs/store/oss/controller/ObjectBasicController.java → src/main/java/cn/reghao/dfs/store/controller/ObjectBasicController.java

@@ -1,14 +1,13 @@
-package cn.reghao.dfs.store.oss.controller;
+package cn.reghao.dfs.store.controller;
 
-import cn.reghao.dfs.store.oss.model.dto.PostObject;
-import cn.reghao.dfs.store.oss.model.dto.DeleteObjects;
-import cn.reghao.dfs.store.oss.model.vo.PostResponse;
-import cn.reghao.dfs.store.oss.service.ObjectBasicService;
+import cn.reghao.dfs.store.model.dto.PostObject;
+import cn.reghao.dfs.store.model.dto.DeleteObjects;
+import cn.reghao.dfs.store.model.vo.PostResponse;
+import cn.reghao.dfs.store.service.ObjectBasicService;
 import cn.reghao.jutil.jdk.result.WebBody;
 import cn.reghao.jutil.web.ServletUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.rocksdb.RocksDBException;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
@@ -27,7 +26,6 @@ import java.nio.charset.StandardCharsets;
  */
 @Api(tags = "对象基础操作接口")
 @RestController
-@RequestMapping("/object")
 public class ObjectBasicController {
     private final ObjectBasicService objectBasicService;
 
@@ -43,7 +41,7 @@ public class ObjectBasicController {
         String uri = servletRequest.getRequestURI();
         String uri1 = URLDecoder.decode(uri, StandardCharsets.UTF_8);
 
-        String objectName = uri1.replace("/object", "");
+        String objectName = uri1.replaceFirst("/", "");
         long len = 0;
         String contentType = "";
         FileInputStream fis = new FileInputStream(file);
@@ -70,22 +68,22 @@ public class ObjectBasicController {
 
     @ApiOperation("获取对象的元数据")
     @RequestMapping(value = "/**", method = RequestMethod.HEAD)
-    public String headObject() throws RocksDBException {
+    public String headObject() {
         String uri = ServletUtil.getRequest().getRequestURI();
         String uri1 = URLDecoder.decode(uri, StandardCharsets.UTF_8);
 
-        String objectName = uri1.replace("/object/", "");
+        String objectName = uri1.replaceFirst("/", "");
         objectBasicService.headObject(objectName);
         return WebBody.success();
     }
 
     @ApiOperation("获取对象")
     @GetMapping(value = "/**")
-    public void getObject() throws RocksDBException, IOException {
+    public void getObject() throws IOException {
         String uri = ServletUtil.getRequest().getRequestURI();
         String uri1 = URLDecoder.decode(uri, StandardCharsets.UTF_8);
 
-        String objectName = uri1.replace("/object/", "");
+        String objectName = uri1.replaceFirst("/", "");
         objectBasicService.getObject(objectName);
     }
 

+ 1 - 2
src/main/java/cn/reghao/dfs/store/oss/controller/ObjectController.java → src/main/java/cn/reghao/dfs/store/controller/ObjectController.java

@@ -1,4 +1,4 @@
-package cn.reghao.dfs.store.oss.controller;
+package cn.reghao.dfs.store.controller;
 
 import cn.reghao.jutil.jdk.result.WebBody;
 import io.swagger.annotations.Api;
@@ -11,7 +11,6 @@ import org.springframework.web.bind.annotation.*;
  */
 @Api(tags = "对象接口")
 @RestController
-@RequestMapping("/object")
 public class ObjectController {
     @ApiOperation("开启或关闭对象的依法保留状态")
     @PutMapping(value = "/{objectKey}", params = {"legal-hold"})

+ 3 - 4
src/main/java/cn/reghao/dfs/store/oss/controller/ObjectMultipartUploadController.java → src/main/java/cn/reghao/dfs/store/controller/ObjectMultipartUploadController.java

@@ -1,7 +1,7 @@
-package cn.reghao.dfs.store.oss.controller;
+package cn.reghao.dfs.store.controller;
 
-import cn.reghao.dfs.store.oss.model.vo.InitiateMultipartUploadResult;
-import cn.reghao.dfs.store.oss.model.vo.ListPartsResult;
+import cn.reghao.dfs.store.model.vo.InitiateMultipartUploadResult;
+import cn.reghao.dfs.store.model.vo.ListPartsResult;
 import cn.reghao.jutil.jdk.result.WebBody;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -14,7 +14,6 @@ import org.springframework.web.multipart.MultipartFile;
  */
 @Api(tags = "对象分片上传接口")
 @RestController
-@RequestMapping("/object")
 public class ObjectMultipartUploadController {
     @ApiOperation("开启分片上传")
     @PostMapping(value = "/{objectName}", params = {"uploads"})

+ 2 - 2
src/main/java/cn/reghao/dfs/store/oss/controller/ServiceController.java → src/main/java/cn/reghao/dfs/store/controller/ServiceController.java

@@ -1,6 +1,6 @@
-package cn.reghao.dfs.store.oss.controller;
+package cn.reghao.dfs.store.controller;
 
-import cn.reghao.dfs.store.oss.model.po.service.ListAllMyBucketsResult;
+import cn.reghao.dfs.store.model.vo.service.ListAllMyBucketsResult;
 import cn.reghao.jutil.jdk.result.WebBody;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;

+ 0 - 116
src/main/java/cn/reghao/dfs/store/controller/VideoFileController.java

@@ -1,116 +0,0 @@
-package cn.reghao.dfs.store.controller;
-
-import cn.reghao.dfs.store.config.DfsProperties;
-import cn.reghao.dfs.store.db.mapper.VideoFileMapper;
-import cn.reghao.dfs.store.model.vo.VideoFileInfo;
-import cn.reghao.jutil.jdk.security.crypto.AesEncrypt;
-import cn.reghao.jutil.web.ServletUtil;
-import io.swagger.annotations.Api;
-import org.springframework.web.bind.annotation.*;
-
-import javax.servlet.http.HttpServletResponse;
-import java.io.RandomAccessFile;
-import java.nio.charset.StandardCharsets;
-import java.util.Arrays;
-
-/**
- * @author reghao
- * @date 2022-04-24 16:13:10
- */
-@Api(tags = "视频文件访问接口")
-@RestController
-@RequestMapping("/video")
-public class VideoFileController {
-    private final VideoFileMapper videoFileMapper;
-    private final String encryptKey;
-    private final int group;
-    private final int node;
-
-    public VideoFileController(VideoFileMapper videoFileMapper, DfsProperties dfsProperties) {
-        this.videoFileMapper = videoFileMapper;
-        this.encryptKey = dfsProperties.getEncryptKey();
-        this.group = dfsProperties.getGroup();
-        this.node = dfsProperties.getNode();
-    }
-
-    @GetMapping("/playback/{filename}")
-    public void videoPlayer(@PathVariable("filename") String filename,
-                            @RequestHeader(required = false) String range,
-                            @RequestParam(value = "sign", required = false) String sign,
-                            HttpServletResponse response) throws Exception {
-        String uploadId = filename.split("\\.")[0];
-        VideoFileInfo videoFileInfo = videoFileMapper.findVideoFileInfoByUploadId(uploadId, group, node);
-        if (videoFileInfo == null) {
-            response.setStatus(HttpServletResponse.SC_NOT_FOUND);
-            response.getOutputStream().write("".getBytes(StandardCharsets.UTF_8));
-            return;
-        }
-
-        long accessUserId = Long.parseLong(ServletUtil.getUserId());
-        long uploadBy = Long.parseLong(videoFileInfo.getUploadBy());
-        if (accessUserId != -1) {
-            if (!videoFileInfo.isActivate()) {
-                response.setStatus(HttpServletResponse.SC_FORBIDDEN);
-                response.getOutputStream().write("".getBytes(StandardCharsets.UTF_8));
-                return;
-            }
-
-            if (videoFileInfo.isAuth()) {
-                if (sign == null) {
-                    response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
-                    response.getOutputStream().write("".getBytes(StandardCharsets.UTF_8));
-                    return;
-                }
-
-                String decryptSign = AesEncrypt.decrypt(sign, encryptKey);
-                String[] arr = decryptSign.split("_");
-                String key = arr[0];
-                long userId = Long.parseLong(arr[1]);
-                long timestamp = Long.parseLong(arr[2]);
-
-                if (userId != accessUserId) {
-                    response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
-                    String errMsg = "url 不是为当前用户生成";
-                    response.getOutputStream().write(errMsg.getBytes(StandardCharsets.UTF_8));
-                    return;
-                }
-
-                if (timestamp < System.currentTimeMillis()) {
-                    response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
-                    String errMsg = "url 过期";
-                    response.getOutputStream().write(errMsg.getBytes(StandardCharsets.UTF_8));
-                    return;
-                }
-            }
-        }
-
-        String absolutePath = videoFileInfo.getAbsolutePath();
-        RandomAccessFile raf = new RandomAccessFile(absolutePath, "r");
-        long fileLength = raf.length();
-        long partLength = 1024*1024*2;
-
-        if (range == null) {
-            response.setContentType("video/mp4");
-            long contentLength = Math.min(fileLength, partLength);
-            response.setHeader("Content-Length", ""+contentLength);
-            response.setHeader("Accept-Ranges", "bytes");
-            response.setStatus(HttpServletResponse.SC_OK);
-            response.getOutputStream().write("".getBytes(StandardCharsets.UTF_8));
-            return;
-        }
-
-        long start = Long.parseLong(range.substring(range.indexOf("=") + 1, range.indexOf("-")));
-        raf.seek(start);
-        byte[] bytes = new byte[(int) partLength];
-        int readBytes = raf.read(bytes);
-        long end = Math.min(start + partLength - 1, start + readBytes-1);
-        long contentLength = end - start + 1;
-
-        response.setContentType("video/mp4");
-        response.setHeader("Content-Length", ""+contentLength);
-        response.setHeader("Content-Range", "bytes "+start+"-"+end+"/"+fileLength);
-        response.setHeader("Accept-Ranges", "bytes");
-        response.setStatus(HttpServletResponse.SC_PARTIAL_CONTENT);
-        response.getOutputStream().write(Arrays.copyOf(bytes, readBytes));
-    }
-}

+ 0 - 86
src/main/java/cn/reghao/dfs/store/controller/VideoUploadController.java

@@ -1,86 +0,0 @@
-package cn.reghao.dfs.store.controller;
-
-import cn.reghao.dfs.store.model.dto.*;
-import cn.reghao.dfs.store.model.po.VideoFile;
-import cn.reghao.dfs.store.model.vo.*;
-import cn.reghao.dfs.store.service.FileUploadService;
-import cn.reghao.dfs.store.service.media.VideoFileService;
-import cn.reghao.jutil.jdk.result.WebBody;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.http.MediaType;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-
-/**
- * @author reghao
- * @date 2022-04-28 13:56:13
- */
-@Api(tags = "视频文件上传接口")
-@RestController
-@RequestMapping("/api/file/upload")
-@Slf4j
-public class VideoUploadController {
-    private final FileUploadService fileUploadService;
-    private final VideoFileService videoService;
-
-    public VideoUploadController(FileUploadService fileUploadService, VideoFileService videoService) {
-        this.fileUploadService = fileUploadService;
-        this.videoService = videoService;;
-    }
-
-    @ApiOperation(value = "上传视频封面")
-    @PostMapping(value = "/video/cover", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String uploadVideoCover(@Validated VideoCover videoCover) throws Exception {
-        String videoFileId = videoCover.getVideoFileId();
-        MultipartFile file = videoCover.getFile();
-
-        String contentType = file.getContentType();
-        if (contentType == null || !contentType.startsWith("image")) {
-            return WebBody.failWithMsg("content-type 错误");
-        }
-
-        UploadingFile uploadingFile = new UploadingFile(file);
-        ImageFileRet imageFileRet = videoService.setVideoCover(videoFileId, uploadingFile);
-        return WebBody.success(imageFileRet);
-    }
-
-    @ApiOperation("文件上传前的准备, 客户端传递文件的 sha256sum, 文件若存在则直接返回文件关联的 id")
-    @PostMapping(value = "/video/prepare", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String videoFilePrepare(@Validated UploadPrepare uploadPrepare) {
-        UploadPrepareRet uploadPrepareRet = fileUploadService.prepareUpload(uploadPrepare);
-        return WebBody.success(uploadPrepareRet);
-    }
-
-    @ApiOperation(value = "获取已上传的视频文件分片")
-    @GetMapping(value = "/video", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String uploadedVideoFilePart() {
-        log.info("已上传的视频文件分片(待实现)");
-        return WebBody.success();
-    }
-
-    @ApiOperation(value = "上传视频分片文件")
-    @PostMapping(value = "/video", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String uploadVideoFile(@Validated UploadFilePart uploadFilePart) throws Exception {
-        FilePartRet filePartRet = fileUploadService.putFilePart(uploadFilePart);
-        String uploadId = filePartRet.getUploadId();
-
-        if (!filePartRet.isMerged()) {
-            return WebBody.success(new VideoFileRet(uploadId));
-        }
-
-        PathUrl pathUrl = filePartRet.getPathUrl();
-        VideoFile videoFile = videoService.process(uploadId, filePartRet.getFileId(), pathUrl);
-        return WebBody.success(new VideoFileRet(uploadId, videoFile));
-    }
-
-    @ApiOperation(value = "处理爬取视频的数据(弃用)")
-    @PostMapping(value = "/video1", produces = MediaType.APPLICATION_JSON_VALUE)
-    @Deprecated
-    public String uploadVideoFile1(@RequestBody @Validated VideoFileSbt videoFileSbt) {
-        VideoFile videoFile = videoService.process1(videoFileSbt);
-        return WebBody.success(new VideoFileRet("uploadId", videoFile));
-    }
-}

+ 2 - 2
src/main/java/cn/reghao/dfs/store/oss/db/mapper/BucketMapper.java → src/main/java/cn/reghao/dfs/store/db/mapper/BucketMapper.java

@@ -1,6 +1,6 @@
-package cn.reghao.dfs.store.oss.db.mapper;
+package cn.reghao.dfs.store.db.mapper;
 
-import cn.reghao.dfs.store.oss.model.po.Bucket;
+import cn.reghao.dfs.store.model.po.Bucket;
 import cn.reghao.jutil.jdk.db.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;

+ 2 - 2
src/main/java/cn/reghao/dfs/store/oss/db/mapper/DataBlockMapper.java → src/main/java/cn/reghao/dfs/store/db/mapper/DataBlockMapper.java

@@ -1,6 +1,6 @@
-package cn.reghao.dfs.store.oss.db.mapper;
+package cn.reghao.dfs.store.db.mapper;
 
-import cn.reghao.dfs.store.oss.model.po.DataBlock;
+import cn.reghao.dfs.store.model.po.DataBlock;
 import cn.reghao.jutil.jdk.db.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;

+ 0 - 20
src/main/java/cn/reghao/dfs/store/db/mapper/FileInfoMapper.java

@@ -1,20 +0,0 @@
-package cn.reghao.dfs.store.db.mapper;
-
-import cn.reghao.jutil.jdk.db.BaseMapper;
-import cn.reghao.dfs.store.model.dto.FileDto;
-import cn.reghao.dfs.store.model.po.FileInfo;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2021-11-22 14:30:12
- */
-@Mapper
-public interface FileInfoMapper extends BaseMapper<FileInfo> {
-    void updateSetUploaded(@Param("fileId") String fileId, @Param("fileType") int fileType, @Param("contentType") String contentType);
-
-    FileInfo findFileInfoBySha256sum(String sha256sum);
-}

+ 6 - 3
src/main/java/cn/reghao/dfs/store/oss/db/mapper/FileMetaMapper.java → src/main/java/cn/reghao/dfs/store/db/mapper/FileMetaMapper.java

@@ -1,6 +1,6 @@
-package cn.reghao.dfs.store.oss.db.mapper;
+package cn.reghao.dfs.store.db.mapper;
 
-import cn.reghao.dfs.store.oss.model.po.FileMeta;
+import cn.reghao.dfs.store.model.po.FileMeta;
 import cn.reghao.jutil.jdk.db.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -17,5 +17,8 @@ public interface FileMetaMapper extends BaseMapper<FileMeta> {
 
     FileMeta findBySha256sum(String sha256sum);
     FileMeta findByObjectName(String objectName);
-    List<FileMeta> findAll1(@Param("prefix") String prefix);
+    List<FileMeta> findAll1(@Param("bucket") String bucket, @Param("prefix") String prefix, @Param("max") Integer max);
+    List<FileMeta> findAll2(@Param("bucket") String bucket, @Param("prefix") String prefix,
+                            @Param("start") String start, @Param("max") Integer max);
+    String findByObjectId(String objectId);
 }

+ 3 - 3
src/main/java/cn/reghao/dfs/store/db/mapper/FilePathMapper.java → src/main/java/cn/reghao/dfs/store/db/mapper/FileTypeMapper.java

@@ -1,13 +1,13 @@
 package cn.reghao.dfs.store.db.mapper;
 
-import cn.reghao.dfs.store.model.po.FilePath;
+import cn.reghao.dfs.store.model.po.FileType;
 import cn.reghao.jutil.jdk.db.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
 
 /**
  * @author reghao
- * @date 2022-08-16 21:29:13
+ * @date 2022-12-27 16:59:15
  */
 @Mapper
-public interface FilePathMapper extends BaseMapper<FilePath> {
+public interface FileTypeMapper extends BaseMapper<FileType> {
 }

+ 0 - 21
src/main/java/cn/reghao/dfs/store/db/mapper/FileUrlMapper.java

@@ -1,21 +0,0 @@
-package cn.reghao.dfs.store.db.mapper;
-
-import cn.reghao.dfs.store.model.dto.PathUrl;
-import cn.reghao.jutil.jdk.db.BaseMapper;
-import cn.reghao.dfs.store.model.po.FileUrl;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-/**
- * @author reghao
- * @date 2021-12-08 14:20:12
- */
-@Mapper
-public interface FileUrlMapper extends BaseMapper<FileUrl> {
-    @Deprecated
-    void updateSetFileUrl(@Param("fileId") String fileId,
-                          @Param("blockId") String blockId,
-                          @Param("filePath") String filePath);
-
-    PathUrl findPathUrl(@Param("uploadId") String uploadId, @Param("group") int group, @Param("node") int node);
-}

+ 0 - 18
src/main/java/cn/reghao/dfs/store/db/mapper/FileUserMapper.java

@@ -1,18 +0,0 @@
-package cn.reghao.dfs.store.db.mapper;
-
-import cn.reghao.jutil.jdk.db.BaseMapper;
-import cn.reghao.dfs.store.model.po.FileInfo;
-import cn.reghao.dfs.store.model.po.FileUser;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-/**
- * @author reghao
- * @date 2022-04-26 20:05:30
- */
-@Mapper
-public interface FileUserMapper extends BaseMapper<FileUser> {
-    FileUser findByFileAndUserId(@Param("fileId") String fileId, @Param("userId") String userId);
-    FileUser findByUploadAndUserId(@Param("uploadId") String uploadId, @Param("userId") String userId);
-    FileInfo findFileInfoByUploadId(String uploadId);
-}

+ 0 - 14
src/main/java/cn/reghao/dfs/store/db/mapper/ImageFileMapper.java

@@ -1,14 +0,0 @@
-package cn.reghao.dfs.store.db.mapper;
-
-import cn.reghao.jutil.jdk.db.BaseMapper;
-import cn.reghao.dfs.store.model.po.ImageFile;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * @author reghao
- * @date 2021-12-08 14:41:35
- */
-@Mapper
-public interface ImageFileMapper extends BaseMapper<ImageFile> {
-    ImageFile findByImageFileId(String imageFileId);
-}

+ 2 - 2
src/main/java/cn/reghao/dfs/store/oss/db/mapper/RegionMapper.java → src/main/java/cn/reghao/dfs/store/db/mapper/RegionMapper.java

@@ -1,6 +1,6 @@
-package cn.reghao.dfs.store.oss.db.mapper;
+package cn.reghao.dfs.store.db.mapper;
 
-import cn.reghao.dfs.store.oss.model.po.Region;
+import cn.reghao.dfs.store.model.po.Region;
 import cn.reghao.jutil.jdk.db.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;

+ 0 - 24
src/main/java/cn/reghao/dfs/store/db/mapper/VideoFileMapper.java

@@ -1,24 +0,0 @@
-package cn.reghao.dfs.store.db.mapper;
-
-import cn.reghao.dfs.store.model.vo.VideoFileInfo;
-import cn.reghao.jutil.jdk.db.BaseMapper;
-import cn.reghao.dfs.store.model.po.VideoFile;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-/**
- * @author reghao
- * @date 2021-12-07 18:59:11
- */
-@Mapper
-public interface VideoFileMapper extends BaseMapper<VideoFile> {
-    void updateSetCover(@Param("videoFileId") String videoFileId,
-                        @Param("coverUrl") String coverUrl,
-                        @Param("coverUrlOriginal") String coverUrlOriginal);
-    void updateSetVideoActivate(@Param("videoFileId") String videoFileId, @Param("activate") boolean activate);
-    void updateSetVideoAuth(@Param("videoFileId") String videoFileId, @Param("auth") boolean auth);
-
-    VideoFileInfo findVideoFileInfoByUploadId(@Param("uploadId") String uploadId,
-                                              @Param("group") int group,
-                                              @Param("node") int node);
-}

+ 0 - 17
src/main/java/cn/reghao/dfs/store/db/mapper/VideoUrlMapper.java

@@ -1,17 +0,0 @@
-package cn.reghao.dfs.store.db.mapper;
-
-import cn.reghao.dfs.store.model.po.VideoUrl;
-import cn.reghao.jutil.jdk.db.BaseMapper;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-/**
- * @author reghao
- * @date 2022-08-04 09:31:27
- */
-@Mapper
-public interface VideoUrlMapper extends BaseMapper<VideoUrl> {
-    void updateSetUrl(@Param("fileId") String fileId, @Param("url") String url);
-
-    VideoUrl findByFileId(String fileId);
-}

+ 0 - 138
src/main/java/cn/reghao/dfs/store/db/repository/FileRepository.java

@@ -1,138 +0,0 @@
-package cn.reghao.dfs.store.db.repository;
-
-import cn.reghao.dfs.store.db.mapper.FileInfoMapper;
-import cn.reghao.dfs.store.db.mapper.FilePathMapper;
-import cn.reghao.dfs.store.db.mapper.FileUrlMapper;
-import cn.reghao.dfs.store.db.mapper.FileUserMapper;
-import cn.reghao.dfs.store.model.dto.FileContentType;
-import cn.reghao.dfs.store.model.dto.PathUrl;
-import cn.reghao.dfs.store.model.dto.UploadPrepare;
-import cn.reghao.dfs.store.model.po.FilePath;
-import cn.reghao.dfs.store.util.store.LocalStores;
-import cn.reghao.jutil.tool.id.IdGenerator;
-import cn.reghao.dfs.store.model.po.FileInfo;
-import cn.reghao.dfs.store.model.po.FileUrl;
-import cn.reghao.dfs.store.model.po.FileUser;
-import cn.reghao.dfs.store.model.vo.FileMap;
-import cn.reghao.jutil.web.ServletUtil;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Repository;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2022-04-26 15:46:08
- */
-@Slf4j
-@Repository
-public class FileRepository {
-    private final IdGenerator idGenerator;
-    private final FileInfoMapper fileInfoMapper;
-    private final FileUrlMapper fileUrlMapper;
-    private final FilePathMapper filePathMapper;
-    private final FileUserMapper fileUserMapper;
-
-    public FileRepository(FileInfoMapper fileInfoMapper, FileUrlMapper fileUrlMapper, FilePathMapper filePathMapper,
-                          FileUserMapper fileUserMapper) {
-        this.idGenerator = new IdGenerator("file-id");
-        this.fileInfoMapper = fileInfoMapper;
-        this.fileUrlMapper = fileUrlMapper;
-        this.filePathMapper = filePathMapper;
-        this.fileUserMapper = fileUserMapper;
-    }
-
-    @Transactional(rollbackFor = Exception.class)
-    public String createFileUploadId(UploadPrepare uploadPrepare, FileContentType fileContentType) {
-        String filename = uploadPrepare.getFilename();
-        long size = uploadPrepare.getSize();
-        String sha256sum = uploadPrepare.getSha256sum();
-        String fileId = idGenerator.getUuid();
-        FileInfo fileInfo = new FileInfo(fileId, sha256sum, filename, size, fileContentType, false);
-
-        String uploadId = idGenerator.getUuid();
-        String currentUserId = ServletUtil.getUserId();
-        FileUser fileUser = new FileUser(uploadId, fileId, currentUserId);
-
-        fileInfoMapper.save(fileInfo);
-        fileUserMapper.save(fileUser);
-        return uploadId;
-    }
-
-    public FileMap createUploadId(String filename, String sha256sum, int size, FileContentType fileContentType) {
-        String fileId = idGenerator.getUuid();
-        FileInfo fileInfo = new FileInfo(fileId, sha256sum, filename, size, fileContentType, true);
-
-        String uploadId = idGenerator.getUuid();
-        String currentUserId = ServletUtil.getUserId();
-        FileUser fileUser = new FileUser(uploadId, fileId, currentUserId);
-
-        fileInfoMapper.save(fileInfo);
-        fileUserMapper.save(fileUser);
-        return new FileMap(fileId, uploadId);
-    }
-
-    public String getOrCreateUploadId(String fileId) {
-        String currentUserId = ServletUtil.getUserId();
-        FileUser fileUser = fileUserMapper.findByFileAndUserId(fileId, currentUserId);
-        if (fileUser != null) {
-            return fileUser.getUploadId();
-        } else {
-            String uploadId = idGenerator.getUuid();
-            fileUser = new FileUser(uploadId, fileId, currentUserId);
-            fileUserMapper.save(fileUser);
-            return uploadId;
-        }
-    }
-
-    @Deprecated
-    public String getOrCreateUploadId(String fileId, String currentUserId) {
-        FileUser fileUser = fileUserMapper.findByFileAndUserId(fileId, currentUserId);
-        if (fileUser != null) {
-            return fileUser.getUploadId();
-        } else {
-            String uploadId = idGenerator.getUuid();
-            fileUser = new FileUser(uploadId, fileId, currentUserId);
-            fileUserMapper.save(fileUser);
-            return uploadId;
-        }
-    }
-
-    public FileInfo getFileInfo(String sha256sum) {
-        return fileInfoMapper.findFileInfoBySha256sum(sha256sum);
-    }
-
-    public FileInfo getFileInfoByFileId(String uploadId) {
-        return fileUserMapper.findFileInfoByUploadId(uploadId);
-    }
-
-    @Transactional(rollbackFor = Exception.class)
-    public void deleteFile(String uploadId) {
-        String currentUserId = ServletUtil.getUserId();
-        FileUser fileUser = fileUserMapper.findByUploadAndUserId(uploadId, currentUserId);
-        if (fileUser == null) {
-            log.error("{} 试图删除不是自己上传的文件", currentUserId);
-        } else {
-            String fileId = fileUser.getFileId();
-            String msg = String.format("%s 已删除", uploadId);
-            log.info(msg);
-        }
-    }
-
-    @Transactional(rollbackFor = Exception.class)
-    public void saveFile(String fileId, FileContentType fileContentType, PathUrl pathUrl) throws Exception {
-        int fileType = fileContentType.getFileType();
-        String contentType = fileContentType.getContentType();
-        String absolutePath = pathUrl.getAbsolutePath();
-        String blockId = LocalStores.getBlockId(absolutePath);
-        FileUrl fileUrl = new FileUrl(fileId, pathUrl.getUrl(), pathUrl.getPath());
-        FilePath filePath = new FilePath(fileId, blockId, absolutePath, 0, 0);
-
-        // TODO 文件上传完成后, 立即同步到其它节点
-        // TODO 事务回滚时会在 FileStore 中产生碎片文件,即在数据库中找不到该文件的任何信息
-        fileInfoMapper.updateSetUploaded(fileId, fileType, contentType);
-        fileUrlMapper.save(fileUrl);
-        filePathMapper.save(filePath);
-    }
-}

+ 0 - 34
src/main/java/cn/reghao/dfs/store/meta/RocksClient.java

@@ -1,34 +0,0 @@
-package cn.reghao.dfs.store.meta;
-
-import cn.reghao.dfs.store.config.DfsProperties;
-import cn.reghao.jutil.jdk.serializer.JsonConverter;
-import lombok.extern.slf4j.Slf4j;
-import org.rocksdb.Options;
-import org.rocksdb.RocksDB;
-import org.rocksdb.RocksDBException;
-import org.springframework.stereotype.Component;
-
-import java.nio.charset.StandardCharsets;
-
-/**
- * @author reghao
- * @date 2022-11-23 09:33:12
- */
-@Slf4j
-@Component
-public class RocksClient {
-    private final RocksDB db;
-
-    public RocksClient(DfsProperties dfsProperties) throws RocksDBException {
-        Options options = new Options().setCreateIfMissing(true);
-        this.db = RocksDB.open(options, dfsProperties.getMetaDir());
-    }
-
-    public void put(String key, byte[] bytes) throws RocksDBException {
-        db.put(key.getBytes(StandardCharsets.UTF_8), bytes);
-    }
-
-    public byte[] get(String key) throws RocksDBException {
-        return db.get(key.getBytes(StandardCharsets.UTF_8));
-    }
-}

+ 0 - 38
src/main/java/cn/reghao/dfs/store/model/constant/FileType.java

@@ -1,38 +0,0 @@
-package cn.reghao.dfs.store.model.constant;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * 文件类型
- *
- * @author reghao
- * @date 2022-04-20 14:57:36
- */
-public enum FileType {
-    image(1, "图片"), audio(2, "音频"), video(3, "视频"), attachment(4, "附件");
-
-    private final Integer code;
-    private final String desc;
-
-    private static Map<Integer, String> descMap = new HashMap<>();
-    static {
-        for (FileType type : FileType.values()) {
-            descMap.put(type.code, type.desc);
-        }
-    }
-
-    FileType(Integer code, String desc) {
-        this.code = code;
-        this.desc = desc;
-    }
-
-    public Integer getCode() {
-        return code;
-    }
-
-    // TODO 第一次调用时会初始化 descMap
-    public static String getDescByCode(int code) {
-        return descMap.get(code);
-    }
-}

+ 0 - 15
src/main/java/cn/reghao/dfs/store/model/constant/VideoUrlType.java

@@ -1,15 +0,0 @@
-package cn.reghao.dfs.store.model.constant;
-
-/**
- * 视频文件 URL 类型
- *
- * @author reghao
- * @date 2021-08-01 22:22:15
- */
-public enum VideoUrlType {
-    mp4, hls, dash;
-
-    public String getName() {
-        return this.name();
-    }
-}

+ 1 - 1
src/main/java/cn/reghao/dfs/store/oss/model/dto/DeleteObjects.java → src/main/java/cn/reghao/dfs/store/model/dto/DeleteObjects.java

@@ -1,4 +1,4 @@
-package cn.reghao.dfs.store.oss.model.dto;
+package cn.reghao.dfs.store.model.dto;
 
 import java.io.Serializable;
 

+ 0 - 22
src/main/java/cn/reghao/dfs/store/model/dto/DownloadFile.java

@@ -1,22 +0,0 @@
-package cn.reghao.dfs.store.model.dto;
-
-import lombok.Getter;
-import lombok.Setter;
-
-import javax.validation.constraints.NotBlank;
-import java.io.Serializable;
-
-/**
- * @author reghao
- * @date 2022-04-26 19:51:17
- */
-@Setter
-@Getter
-public class DownloadFile implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    @NotBlank
-    private String uploadId;
-    @NotBlank
-    private String token;
-}

+ 0 - 28
src/main/java/cn/reghao/dfs/store/model/dto/FileDto.java

@@ -1,28 +0,0 @@
-package cn.reghao.dfs.store.model.dto;
-
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-
-import java.io.Serializable;
-
-/**
- * @author reghao
- * @date 2021-12-06 00:32:03
- */
-@NoArgsConstructor
-@Getter
-public class FileDto implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    private String fileId;
-    private String filename;
-    private String filePath;
-    private String url;
-
-    public FileDto(String fileId, String filename, String filePath, String url) {
-        this.fileId = fileId;
-        this.filename = filename;
-        this.filePath = filePath;
-        this.url = url;
-    }
-}

+ 0 - 19
src/main/java/cn/reghao/dfs/store/model/dto/FileInfoDto.java

@@ -1,19 +0,0 @@
-package cn.reghao.dfs.store.model.dto;
-
-import lombok.Getter;
-
-import java.io.Serializable;
-
-/**
- * @author reghao
- * @date 2021-12-06 00:32:03
- */
-@Getter
-public class FileInfoDto implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    private String fileId;
-    private String filename;
-    private String url;
-    private byte[] bytes;
-}

+ 1 - 1
src/main/java/cn/reghao/dfs/store/oss/model/dto/GetBucket.java → src/main/java/cn/reghao/dfs/store/model/dto/GetBucket.java

@@ -1,4 +1,4 @@
-package cn.reghao.dfs.store.oss.model.dto;
+package cn.reghao.dfs.store.model.dto;
 
 import lombok.Getter;
 import lombok.NoArgsConstructor;

+ 1 - 1
src/main/java/cn/reghao/dfs/store/oss/model/dto/PostObject.java → src/main/java/cn/reghao/dfs/store/model/dto/PostObject.java

@@ -1,4 +1,4 @@
-package cn.reghao.dfs.store.oss.model.dto;
+package cn.reghao.dfs.store.model.dto;
 
 import lombok.Getter;
 import lombok.NoArgsConstructor;

+ 0 - 21
src/main/java/cn/reghao/dfs/store/model/dto/SyncFile.java

@@ -1,21 +0,0 @@
-package cn.reghao.dfs.store.model.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-import java.io.Serializable;
-
-/**
- * @author reghao
- * @date 2022-08-19 17:10:22
- */
-@AllArgsConstructor
-@Getter
-public class SyncFile implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    private String fileId;
-    private String sha256sum;
-    private Long fileSize;
-    private String filename;
-}

+ 0 - 44
src/main/java/cn/reghao/dfs/store/model/dto/UploadFilePart.java

@@ -1,44 +0,0 @@
-package cn.reghao.dfs.store.model.dto;
-
-import lombok.Getter;
-import lombok.Setter;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-import java.io.InputStream;
-import java.io.Serializable;
-
-/**
- * @author reghao
- * @date 2022-04-25 10:42:38
- */
-@Getter
-@Setter
-public class UploadFilePart implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    @NotNull
-    private MultipartFile file;
-    // 文件标识
-    @NotBlank
-    private String identifier;
-    private String filename;
-    private String relativePath;
-    // 文件大小
-    @NotNull
-    private Long totalSize;
-    // 分片文件大小
-    @NotNull
-    private Integer chunkSize;
-    // 当前分片文件大小
-    @NotNull
-    private Integer currentChunkSize;
-    // 分片文件数量
-    @NotNull
-    private Integer totalChunks;
-    // 当前分片文件索引
-    @NotNull
-    private Integer chunkNumber;
-    private String partSha256sum;
-}

+ 0 - 33
src/main/java/cn/reghao/dfs/store/model/dto/UploadPart.java

@@ -1,33 +0,0 @@
-package cn.reghao.dfs.store.model.dto;
-
-import com.fasterxml.jackson.databind.PropertyNamingStrategy;
-import com.fasterxml.jackson.databind.annotation.JsonNaming;
-import lombok.Getter;
-import lombok.Setter;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-import java.io.Serializable;
-
-/**
- * @author reghao
- * @date 2022-04-25 10:42:38
- */
-@Getter
-@Setter
-@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
-public class UploadPart implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    @NotNull
-    private MultipartFile file;
-    @NotBlank
-    private String sha256sum;
-    @NotBlank
-    private String uploadId;
-    @NotNull
-    private Integer splitIndex;
-    @NotNull
-    private Integer splitNum;
-}

+ 0 - 30
src/main/java/cn/reghao/dfs/store/model/dto/UploadPrepare.java

@@ -1,30 +0,0 @@
-package cn.reghao.dfs.store.model.dto;
-
-import com.fasterxml.jackson.databind.PropertyNamingStrategy;
-import com.fasterxml.jackson.databind.annotation.JsonNaming;
-import lombok.Getter;
-import lombok.Setter;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-import java.io.Serializable;
-
-/**
- * 分片文件
- *
- * @author reghao
- * @date 2021-11-23 10:23:00
- */
-@Setter
-@Getter
-//@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
-public class UploadPrepare implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    @NotBlank
-    private String filename;
-    @NotNull
-    private Long size;
-    @NotBlank
-    private String sha256sum;
-}

+ 0 - 22
src/main/java/cn/reghao/dfs/store/model/dto/UploadedFile.java

@@ -1,22 +0,0 @@
-package cn.reghao.dfs.store.model.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-import java.io.Serializable;
-
-/**
- * 已上传的文件
- *
- * @author reghao
- * @date 2022-04-26 15:22:49
- */
-@AllArgsConstructor
-@Getter
-public class UploadedFile implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    private String uploadId;
-    private String fileId;
-    private PathUrl pathUrl;
-}

+ 0 - 30
src/main/java/cn/reghao/dfs/store/model/dto/UploadingFile.java

@@ -1,30 +0,0 @@
-package cn.reghao.dfs.store.model.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import org.springframework.web.multipart.MultipartFile;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-/**
- * 待上传的文件
- *
- * @author reghao
- * @date 2022-06-11 23:08:14
- */
-@AllArgsConstructor
-@Getter
-public class UploadingFile {
-    private String filename;
-    private long size;
-    private String contentType;
-    private InputStream inputStream;
-
-    public UploadingFile(MultipartFile multipartFile) throws IOException {
-        this.filename = multipartFile.getOriginalFilename();
-        this.size = multipartFile.getSize();
-        this.contentType = multipartFile.getContentType();
-        this.inputStream = multipartFile.getInputStream();
-    }
-}

+ 0 - 21
src/main/java/cn/reghao/dfs/store/model/dto/VideoCover.java

@@ -1,21 +0,0 @@
-package cn.reghao.dfs.store.model.dto;
-
-import lombok.Getter;
-import lombok.Setter;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-
-/**
- * @author reghao
- * @date 2022-08-15 12:45:21
- */
-@Setter
-@Getter
-public class VideoCover {
-    @NotBlank
-    private String videoFileId;
-    @NotNull
-    private MultipartFile file;
-}

+ 0 - 28
src/main/java/cn/reghao/dfs/store/model/dto/VideoFileSbt.java

@@ -1,28 +0,0 @@
-package cn.reghao.dfs.store.model.dto;
-
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-
-/**
- * 视频文件
- *
- * @author reghao
- * @date 2021-11-22 10:21:15
- */
-@NoArgsConstructor
-@Getter
-public class VideoFileSbt {
-    @NotBlank
-    private String videoFileId;
-    @NotNull
-    private Boolean horizontal;
-    @NotNull
-    private Integer duration;
-    @NotBlank
-    private String coverUrl;
-    @NotBlank
-    private String coverUrlOriginal;
-}

+ 1 - 1
src/main/java/cn/reghao/dfs/store/oss/model/po/Bucket.java → src/main/java/cn/reghao/dfs/store/model/po/Bucket.java

@@ -1,4 +1,4 @@
-package cn.reghao.dfs.store.oss.model.po;
+package cn.reghao.dfs.store.model.po;
 
 import cn.reghao.jutil.jdk.db.BaseObject;
 import lombok.Getter;

+ 1 - 1
src/main/java/cn/reghao/dfs/store/oss/model/po/ContentRange.java → src/main/java/cn/reghao/dfs/store/model/po/ContentRange.java

@@ -1,4 +1,4 @@
-package cn.reghao.dfs.store.oss.model.po;
+package cn.reghao.dfs.store.model.po;
 
 import lombok.AllArgsConstructor;
 import lombok.Getter;

+ 1 - 1
src/main/java/cn/reghao/dfs/store/oss/model/po/DataBlock.java → src/main/java/cn/reghao/dfs/store/model/po/DataBlock.java

@@ -1,4 +1,4 @@
-package cn.reghao.dfs.store.oss.model.po;
+package cn.reghao.dfs.store.model.po;
 
 import cn.reghao.jutil.jdk.db.BaseObject;
 import lombok.AllArgsConstructor;

+ 0 - 40
src/main/java/cn/reghao/dfs/store/model/po/FileInfo.java

@@ -1,40 +0,0 @@
-package cn.reghao.dfs.store.model.po;
-
-import cn.reghao.dfs.store.model.dto.FileContentType;
-import cn.reghao.jutil.jdk.db.BaseObject;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-
-/**
- * @author reghao
- * @date 2021-11-22 09:57:23
- */
-@NoArgsConstructor
-@Setter
-@Getter
-public class FileInfo extends BaseObject<Integer> {
-    private String fileId;
-    private String sha256sum;
-    private String filename;
-    private Long size;
-    private String suffix;
-    private int fileType;
-    // http content-type
-    private String contentType;
-    private Boolean uploaded;
-    private Boolean original;
-
-    public FileInfo(String fileId, String sha256sum, String filename, long size,
-                    FileContentType fileContentType, boolean uploaded) {
-        this.fileId = fileId;
-        this.sha256sum = sha256sum;
-        this.filename = filename;
-        this.size = size;
-        this.suffix = fileContentType.getSuffix();
-        this.fileType = fileContentType.getFileType();
-        this.contentType = fileContentType.getContentType();
-        this.uploaded = uploaded;
-        this.original = true;
-    }
-}

+ 1 - 1
src/main/java/cn/reghao/dfs/store/oss/model/po/FileMeta.java → src/main/java/cn/reghao/dfs/store/model/po/FileMeta.java

@@ -1,4 +1,4 @@
-package cn.reghao.dfs.store.oss.model.po;
+package cn.reghao.dfs.store.model.po;
 
 import cn.reghao.jutil.jdk.db.BaseObject;
 import lombok.AllArgsConstructor;

+ 0 - 21
src/main/java/cn/reghao/dfs/store/model/po/FilePath.java

@@ -1,21 +0,0 @@
-package cn.reghao.dfs.store.model.po;
-
-import cn.reghao.jutil.jdk.db.BaseObject;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-
-/**
- * @author reghao
- * @date 2022-08-16 21:24:02
- */
-@AllArgsConstructor
-@NoArgsConstructor
-@Getter
-public class FilePath extends BaseObject<Integer> {
-    private String fileId;
-    private String blockId;
-    private String absolutePath;
-    private int group;
-    private int node;
-}

+ 1 - 1
src/main/java/cn/reghao/dfs/store/oss/model/po/FileType.java → src/main/java/cn/reghao/dfs/store/model/po/FileType.java

@@ -1,4 +1,4 @@
-package cn.reghao.dfs.store.oss.model.po;
+package cn.reghao.dfs.store.model.po;
 
 import cn.reghao.jutil.jdk.db.BaseObject;
 import lombok.AllArgsConstructor;

+ 0 - 20
src/main/java/cn/reghao/dfs/store/model/po/FileUrl.java

@@ -1,20 +0,0 @@
-package cn.reghao.dfs.store.model.po;
-
-import cn.reghao.jutil.jdk.db.BaseObject;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-
-/**
- * @author reghao
- * @date 2021-12-08 13:57:23
- */
-@AllArgsConstructor
-@NoArgsConstructor
-@Getter
-public class FileUrl extends BaseObject<Integer> {
-    private String fileId;
-    private String url;
-    private String path;
-}

+ 0 - 27
src/main/java/cn/reghao/dfs/store/model/po/FileUser.java

@@ -1,27 +0,0 @@
-package cn.reghao.dfs.store.model.po;
-
-import cn.reghao.jutil.jdk.db.BaseObject;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-
-/**
- * @author reghao
- * @date 2022-04-26 20:04:50
- */
-@NoArgsConstructor
-@Getter
-public class FileUser extends BaseObject<Integer> {
-    private String uploadId;
-    private String fileId;
-    private String uploadBy;
-    private Boolean activate;
-    private Boolean auth;
-
-    public FileUser(String uploadId, String fileId, String uploadBy) {
-        this.uploadId = uploadId;
-        this.fileId = fileId;
-        this.uploadBy = uploadBy;
-        this.activate = false;
-        this.auth = false;
-    }
-}

+ 0 - 26
src/main/java/cn/reghao/dfs/store/model/po/ImageFile.java

@@ -1,26 +0,0 @@
-package cn.reghao.dfs.store.model.po;
-
-import cn.reghao.jutil.jdk.db.BaseObject;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.NoArgsConstructor;
-
-/**
- * 图像文件
- *
- * @author reghao
- * @date 2021-12-08 13:52:01
- */
-@AllArgsConstructor
-@NoArgsConstructor
-@EqualsAndHashCode(callSuper = true)
-@Data
-public class ImageFile extends BaseObject<Integer> {
-    private String imageFileId;
-    private String fileId;
-    private Boolean horizontal;
-    private Integer width;
-    private Integer height;
-    private String url;
-}

+ 1 - 1
src/main/java/cn/reghao/dfs/store/oss/model/po/Region.java → src/main/java/cn/reghao/dfs/store/model/po/Region.java

@@ -1,4 +1,4 @@
-package cn.reghao.dfs.store.oss.model.po;
+package cn.reghao.dfs.store.model.po;
 
 import cn.reghao.jutil.jdk.db.BaseObject;
 import lombok.Getter;

+ 0 - 44
src/main/java/cn/reghao/dfs/store/model/po/VideoFile.java

@@ -1,44 +0,0 @@
-package cn.reghao.dfs.store.model.po;
-
-import cn.reghao.dfs.store.model.dto.VideoFileSbt;
-import cn.reghao.jutil.jdk.db.BaseObject;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-
-/**
- * 视频文件
- *
- * @author reghao
- * @date 2021-11-22 10:21:15
- */
-@NoArgsConstructor
-@Setter
-@Getter
-public class VideoFile extends BaseObject<Integer> {
-    private String uploadId;
-    private String videoFileId;
-    private Boolean horizontal;
-    // 单位秒
-    private Integer duration;
-    private String coverUrl;
-    private String coverUrlOriginal;
-    private Boolean activate;
-    private Boolean auth;
-
-    public VideoFile(String uploadId, String videoFileId) {
-        this.uploadId = uploadId;
-        this.videoFileId = videoFileId;
-        this.activate = false;
-        this.auth = true;
-    }
-
-    @Deprecated
-    public VideoFile(VideoFileSbt videoFileSbt) {
-        this.videoFileId = videoFileSbt.getVideoFileId();
-        this.horizontal = videoFileSbt.getHorizontal();
-        this.duration = videoFileSbt.getDuration();
-        this.coverUrl = videoFileSbt.getCoverUrl();
-        this.coverUrlOriginal = videoFileSbt.getCoverUrlOriginal();
-    }
-}

+ 0 - 23
src/main/java/cn/reghao/dfs/store/model/po/VideoUrl.java

@@ -1,23 +0,0 @@
-package cn.reghao.dfs.store.model.po;
-
-import cn.reghao.jutil.jdk.db.BaseObject;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-
-/**
- * @author reghao
- * @date 2022-08-04 09:19:16
- */
-@AllArgsConstructor
-@NoArgsConstructor
-@Getter
-public class VideoUrl extends BaseObject<Integer> {
-    private String videoFileId;
-    private String fileId;
-    private String urlType;
-    private Integer width;
-    private Integer height;
-    private String quality;
-    private String url;
-}

+ 1 - 1
src/main/java/cn/reghao/dfs/store/oss/model/po/bucket/CorsConfiguration.java → src/main/java/cn/reghao/dfs/store/model/po/bucket/CorsConfiguration.java

@@ -1,4 +1,4 @@
-package cn.reghao.dfs.store.oss.model.po.bucket;
+package cn.reghao.dfs.store.model.po.bucket;
 
 import java.util.List;
 

+ 1 - 1
src/main/java/cn/reghao/dfs/store/oss/model/po/bucket/CorsRule.java → src/main/java/cn/reghao/dfs/store/model/po/bucket/CorsRule.java

@@ -1,4 +1,4 @@
-package cn.reghao.dfs.store.oss.model.po.bucket;
+package cn.reghao.dfs.store.model.po.bucket;
 
 /**
  * @author reghao

+ 1 - 1
src/main/java/cn/reghao/dfs/store/oss/model/po/bucket/Expiration.java → src/main/java/cn/reghao/dfs/store/model/po/bucket/Expiration.java

@@ -1,4 +1,4 @@
-package cn.reghao.dfs.store.oss.model.po.bucket;
+package cn.reghao.dfs.store.model.po.bucket;
 
 /**
  * @author reghao

+ 1 - 1
src/main/java/cn/reghao/dfs/store/oss/model/po/bucket/Filter.java → src/main/java/cn/reghao/dfs/store/model/po/bucket/Filter.java

@@ -1,4 +1,4 @@
-package cn.reghao.dfs.store.oss.model.po.bucket;
+package cn.reghao.dfs.store.model.po.bucket;
 
 /**
  * @author reghao

+ 1 - 1
src/main/java/cn/reghao/dfs/store/oss/model/po/bucket/LifecycleConfiguration.java → src/main/java/cn/reghao/dfs/store/model/po/bucket/LifecycleConfiguration.java

@@ -1,4 +1,4 @@
-package cn.reghao.dfs.store.oss.model.po.bucket;
+package cn.reghao.dfs.store.model.po.bucket;
 
 import java.util.List;
 

+ 1 - 1
src/main/java/cn/reghao/dfs/store/oss/model/po/bucket/Rule.java → src/main/java/cn/reghao/dfs/store/model/po/bucket/Rule.java

@@ -1,4 +1,4 @@
-package cn.reghao.dfs.store.oss.model.po.bucket;
+package cn.reghao.dfs.store.model.po.bucket;
 
 /**
  * @author reghao

+ 1 - 1
src/main/java/cn/reghao/dfs/store/oss/model/po/bucket/Transition.java → src/main/java/cn/reghao/dfs/store/model/po/bucket/Transition.java

@@ -1,4 +1,4 @@
-package cn.reghao.dfs.store.oss.model.po.bucket;
+package cn.reghao.dfs.store.model.po.bucket;
 
 /**
  * @author reghao

+ 0 - 21
src/main/java/cn/reghao/dfs/store/model/vo/CacheResult.java

@@ -1,21 +0,0 @@
-package cn.reghao.dfs.store.model.vo;
-
-/**
- * @author reghao
- * @date 2022-07-29 15:12:40
- */
-public class CacheResult {
-    private Boolean notFound;
-    private String uploadId;
-    private String url;
-
-    public CacheResult(String uploadId, String url) {
-        this.notFound = false;
-        this.uploadId = uploadId;
-        this.url = url;
-    }
-
-    public CacheResult(boolean notFound) {
-        this.notFound = notFound;
-    }
-}

+ 1 - 1
src/main/java/cn/reghao/dfs/store/oss/model/vo/CompleteMultipartUpload.java → src/main/java/cn/reghao/dfs/store/model/vo/CompleteMultipartUpload.java

@@ -1,4 +1,4 @@
-package cn.reghao.dfs.store.oss.model.vo;
+package cn.reghao.dfs.store.model.vo;
 
 import javax.xml.bind.annotation.XmlRootElement;
 import java.util.List;

+ 1 - 1
src/main/java/cn/reghao/dfs/store/oss/model/vo/Contents.java → src/main/java/cn/reghao/dfs/store/model/vo/Contents.java

@@ -1,4 +1,4 @@
-package cn.reghao.dfs.store.oss.model.vo;
+package cn.reghao.dfs.store.model.vo;
 
 import lombok.Getter;
 import lombok.NoArgsConstructor;

+ 1 - 1
src/main/java/cn/reghao/dfs/store/oss/model/vo/Delete.java → src/main/java/cn/reghao/dfs/store/model/vo/Delete.java

@@ -1,4 +1,4 @@
-package cn.reghao.dfs.store.oss.model.vo;
+package cn.reghao.dfs.store.model.vo;
 
 import javax.xml.bind.annotation.XmlElement;
 import java.util.List;

+ 1 - 1
src/main/java/cn/reghao/dfs/store/oss/model/vo/DeleteResult.java → src/main/java/cn/reghao/dfs/store/model/vo/DeleteResult.java

@@ -1,4 +1,4 @@
-package cn.reghao.dfs.store.oss.model.vo;
+package cn.reghao.dfs.store.model.vo;
 
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;

+ 1 - 1
src/main/java/cn/reghao/dfs/store/oss/model/vo/Deleted.java → src/main/java/cn/reghao/dfs/store/model/vo/Deleted.java

@@ -1,4 +1,4 @@
-package cn.reghao.dfs.store.oss.model.vo;
+package cn.reghao.dfs.store.model.vo;
 
 /**
  * @author reghao

+ 1 - 1
src/main/java/cn/reghao/dfs/store/oss/model/vo/Error.java → src/main/java/cn/reghao/dfs/store/model/vo/Error.java

@@ -1,4 +1,4 @@
-package cn.reghao.dfs.store.oss.model.vo;
+package cn.reghao.dfs.store.model.vo;
 
 /**
  * @author reghao

+ 0 - 15
src/main/java/cn/reghao/dfs/store/model/vo/FileMap.java

@@ -1,15 +0,0 @@
-package cn.reghao.dfs.store.model.vo;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-/**
- * @author reghao
- * @date 2022-06-13 10:59:03
- */
-@AllArgsConstructor
-@Getter
-public class FileMap {
-    private String fileId;
-    private String uploadId;
-}

+ 0 - 28
src/main/java/cn/reghao/dfs/store/model/vo/FilePartRet.java

@@ -1,28 +0,0 @@
-package cn.reghao.dfs.store.model.vo;
-
-import cn.reghao.dfs.store.model.dto.PathUrl;
-import lombok.Getter;
-
-/**
- * @author reghao
- * @date 2022-04-21 09:32:00
- */
-@Getter
-public class FilePartRet {
-    private String uploadId;
-    private boolean merged;
-    private PathUrl pathUrl;
-    private String fileId;
-
-    public FilePartRet(String uploadId) {
-        this.uploadId = uploadId;
-        this.merged = false;
-    }
-
-    public FilePartRet(String uploadId, PathUrl pathUrl, String fileId) {
-        this.uploadId = uploadId;
-        this.merged = true;
-        this.pathUrl = pathUrl;
-        this.fileId = fileId;
-    }
-}

+ 0 - 18
src/main/java/cn/reghao/dfs/store/model/vo/ImageFileRet.java

@@ -1,18 +0,0 @@
-package cn.reghao.dfs.store.model.vo;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-/**
- * @author reghao
- * @date 2022-08-05 18:06:08
- */
-@AllArgsConstructor
-@Getter
-public class ImageFileRet {
-    private String uploadId;
-    @Deprecated
-    private String imageFileId;
-    private String thumbnailUrl;
-    private String originalUrl;
-}

+ 1 - 1
src/main/java/cn/reghao/dfs/store/oss/model/vo/InitiateMultipartUploadResult.java → src/main/java/cn/reghao/dfs/store/model/vo/InitiateMultipartUploadResult.java

@@ -1,4 +1,4 @@
-package cn.reghao.dfs.store.oss.model.vo;
+package cn.reghao.dfs.store.model.vo;
 
 import lombok.NoArgsConstructor;
 

+ 1 - 1
src/main/java/cn/reghao/dfs/store/oss/model/vo/Initiator.java → src/main/java/cn/reghao/dfs/store/model/vo/Initiator.java

@@ -1,4 +1,4 @@
-package cn.reghao.dfs.store.oss.model.vo;
+package cn.reghao.dfs.store.model.vo;
 
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;

+ 1 - 1
src/main/java/cn/reghao/dfs/store/oss/model/vo/ListBucketResult.java → src/main/java/cn/reghao/dfs/store/model/vo/ListBucketResult.java

@@ -1,4 +1,4 @@
-package cn.reghao.dfs.store.oss.model.vo;
+package cn.reghao.dfs.store.model.vo;
 
 import lombok.Getter;
 import lombok.NoArgsConstructor;

+ 1 - 1
src/main/java/cn/reghao/dfs/store/oss/model/vo/ListPartsResult.java → src/main/java/cn/reghao/dfs/store/model/vo/ListPartsResult.java

@@ -1,4 +1,4 @@
-package cn.reghao.dfs.store.oss.model.vo;
+package cn.reghao.dfs.store.model.vo;
 
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;

+ 1 - 1
src/main/java/cn/reghao/dfs/store/oss/model/vo/Object.java → src/main/java/cn/reghao/dfs/store/model/vo/Object.java

@@ -1,4 +1,4 @@
-package cn.reghao.dfs.store.oss.model.vo;
+package cn.reghao.dfs.store.model.vo;
 
 /**
  * @author reghao

+ 1 - 1
src/main/java/cn/reghao/dfs/store/oss/model/vo/Owner.java → src/main/java/cn/reghao/dfs/store/model/vo/Owner.java

@@ -1,4 +1,4 @@
-package cn.reghao.dfs.store.oss.model.vo;
+package cn.reghao.dfs.store.model.vo;
 
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;

+ 1 - 1
src/main/java/cn/reghao/dfs/store/oss/model/vo/Part.java → src/main/java/cn/reghao/dfs/store/model/vo/Part.java

@@ -1,4 +1,4 @@
-package cn.reghao.dfs.store.oss.model.vo;
+package cn.reghao.dfs.store.model.vo;
 
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;

+ 1 - 1
src/main/java/cn/reghao/dfs/store/oss/model/vo/PostResponse.java → src/main/java/cn/reghao/dfs/store/model/vo/PostResponse.java

@@ -1,4 +1,4 @@
-package cn.reghao.dfs.store.oss.model.vo;
+package cn.reghao.dfs.store.model.vo;
 
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;

+ 0 - 13
src/main/java/cn/reghao/dfs/store/model/vo/UploadFileRet.java

@@ -1,13 +0,0 @@
-package cn.reghao.dfs.store.model.vo;
-
-import lombok.AllArgsConstructor;
-
-/**
- * @author reghao
- * @date 2022-08-09 17:46:04
- */
-@AllArgsConstructor
-public class UploadFileRet {
-    private String uploadId;
-    private String url;
-}

+ 0 - 16
src/main/java/cn/reghao/dfs/store/model/vo/UploadPrepareRet.java

@@ -1,16 +0,0 @@
-package cn.reghao.dfs.store.model.vo;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-/**
- * @author reghao
- * @date 2022-04-21 09:27:55
- */
-@AllArgsConstructor
-@Getter
-public class UploadPrepareRet {
-    private String uploadId;
-    private long splitSize;
-    private boolean exist;
-}

+ 0 - 17
src/main/java/cn/reghao/dfs/store/model/vo/VideoFileInfo.java

@@ -1,17 +0,0 @@
-package cn.reghao.dfs.store.model.vo;
-
-import lombok.Getter;
-
-/**
- * @author reghao
- * @date 2022-09-02 08:58:54
- */
-@Getter
-public class VideoFileInfo {
-    private String videoFileId;
-    private String fileId;
-    private String uploadBy;
-    private boolean activate;
-    private boolean auth;
-    private String absolutePath;
-}

+ 0 - 32
src/main/java/cn/reghao/dfs/store/model/vo/VideoFileRet.java

@@ -1,32 +0,0 @@
-package cn.reghao.dfs.store.model.vo;
-
-import cn.reghao.dfs.store.model.po.VideoFile;
-
-/**
- * @author reghao
- * @date 2022-07-23 06:21:32
- */
-public class VideoFileRet {
-    private String uploadId;
-    private boolean merged;
-    private String videoFileId;
-    private Boolean horizontal;
-    private Integer duration;
-    private String coverUrl;
-    private String coverUrlOriginal;
-
-    public VideoFileRet(String uploadId) {
-        this.uploadId = uploadId;
-        this.merged = false;
-    }
-
-    public VideoFileRet(String uploadId, VideoFile videoFile) {
-        this.uploadId = uploadId;
-        this.merged = true;
-        this.videoFileId = videoFile.getVideoFileId();
-        this.duration = videoFile.getDuration();
-        this.horizontal = videoFile.getHorizontal();
-        this.coverUrl = videoFile.getCoverUrl();
-        this.coverUrlOriginal = videoFile.getCoverUrlOriginal();
-    }
-}

+ 1 - 1
src/main/java/cn/reghao/dfs/store/oss/model/po/service/Bucket.java → src/main/java/cn/reghao/dfs/store/model/vo/service/Bucket.java

@@ -1,4 +1,4 @@
-package cn.reghao.dfs.store.oss.model.po.service;
+package cn.reghao.dfs.store.model.vo.service;
 
 import java.time.LocalDateTime;
 

+ 2 - 2
src/main/java/cn/reghao/dfs/store/oss/model/po/service/ListAllMyBucketsResult.java → src/main/java/cn/reghao/dfs/store/model/vo/service/ListAllMyBucketsResult.java

@@ -1,6 +1,6 @@
-package cn.reghao.dfs.store.oss.model.po.service;
+package cn.reghao.dfs.store.model.vo.service;
 
-import cn.reghao.dfs.store.oss.model.vo.Owner;
+import cn.reghao.dfs.store.model.vo.Owner;
 
 import java.util.List;
 

+ 0 - 86
src/main/java/cn/reghao/dfs/store/oss/controller/BucketBasicJsonController.java

@@ -1,86 +0,0 @@
-package cn.reghao.dfs.store.oss.controller;
-
-import cn.reghao.dfs.store.oss.db.mapper.BucketMapper;
-import cn.reghao.dfs.store.oss.db.mapper.RegionMapper;
-import cn.reghao.dfs.store.oss.model.dto.json.CreateBucket;
-import cn.reghao.dfs.store.oss.model.po.Bucket;
-import cn.reghao.dfs.store.oss.model.vo.json.BucketGetResult;
-import cn.reghao.dfs.store.oss.model.vo.json.BucketListResult;
-import cn.reghao.jutil.jdk.result.WebBody;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.http.MediaType;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-/**
- * @author reghao
- * @date 2023-01-04 16:46:45
- */
-@Api(tags = "存储桶基础操作接口")
-@RestController
-@RequestMapping("/ajax")
-public class BucketBasicJsonController {
-    private final RegionMapper regionMapper;
-    private final BucketMapper bucketMapper;
-
-    public BucketBasicJsonController(RegionMapper regionMapper, BucketMapper bucketMapper) {
-        this.regionMapper = regionMapper;
-        this.bucketMapper = bucketMapper;
-    }
-
-    @ApiOperation("查找存储桶名字是否存在")
-    @GetMapping(value = "/bucket/judge_exist.json", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String judgeExist(@RequestParam("region") String region, @RequestParam("bucketName") String bucketName) {
-        Bucket bucket = bucketMapper.findByName(bucketName);
-        return bucket == null ? WebBody.success() : WebBody.fail(null);
-    }
-
-    @ApiOperation("创建存储桶")
-    @PostMapping(value = "/bucket/new_create_bucket.json", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String createBucket(@Validated CreateBucket createBucket) {
-        String region = createBucket.getRegion();
-        String bucketName = createBucket.getBucket();
-        String storageClass = createBucket.getStorage();
-        String acl = createBucket.getAcl();
-
-        Integer regionId = regionMapper.findIdByLocation(region);
-        if (regionId == null) {
-            return WebBody.fail(region + " 不存在");
-        }
-
-        Bucket bucket = bucketMapper.findByName(bucketName);
-        if (bucket == null) {
-            bucket = new Bucket();
-            bucket.setRegionId(regionId);
-            bucket.setName(bucketName);
-            bucket.setStorage(storageClass);
-            bucket.setAcl(acl);
-            bucketMapper.save(bucket);
-            return WebBody.success();
-        } else {
-            return WebBody.fail(bucketName + " 已存在");
-        }
-    }
-
-    @ApiOperation("获取存储桶列表")
-    @GetMapping(value = "/bucket/list.json", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String getBucketList() {
-        BucketListResult bucketListResult = new BucketListResult();
-        return WebBody.success(bucketListResult);
-    }
-
-    @ApiOperation("获取存储桶标签")
-    @GetMapping(value = "/bucket/tag.json", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String getTag(@RequestParam("region") String region, @RequestParam("bucket") String bucket) {
-        BucketListResult bucketListResult = new BucketListResult();
-        return WebBody.success(bucketListResult);
-    }
-
-    @ApiOperation("获取存储桶详情")
-    @GetMapping(value = "/bucket/get.json", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String getBucket(@RequestParam("region") String region, @RequestParam("bucket") String bucket) {
-        BucketGetResult bucketGetResult = new BucketGetResult();
-        return WebBody.success(bucketGetResult);
-    }
-}

+ 0 - 166
src/main/java/cn/reghao/dfs/store/oss/controller/ObjectBasicJsonController.java

@@ -1,166 +0,0 @@
-package cn.reghao.dfs.store.oss.controller;
-
-import cn.reghao.dfs.store.oss.db.mapper.FileMetaMapper;
-import cn.reghao.dfs.store.oss.db.mapper.FileTypeMapper;
-import cn.reghao.dfs.store.oss.model.dto.json.*;
-import cn.reghao.dfs.store.oss.model.po.FileMeta;
-import cn.reghao.jutil.jdk.converter.DateTimeConverter;
-import cn.reghao.jutil.jdk.result.WebBody;
-import cn.reghao.jutil.tool.id.IdGenerator;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.http.MediaType;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * @author reghao
- * @date 2023-01-02 17:47:08
- */
-@Api(tags = "存储桶中对象的基础操作接口")
-@RestController
-@RequestMapping("/ajax")
-public class ObjectBasicJsonController {
-    private final FileMetaMapper fileMetaMapper;
-    private final FileTypeMapper fileTypeMapper;
-    private final IdGenerator objectIdGenerator;
-
-    public ObjectBasicJsonController(FileMetaMapper fileMetaMapper, FileTypeMapper fileTypeMapper) {
-        this.fileMetaMapper = fileMetaMapper;
-        this.fileTypeMapper = fileTypeMapper;
-        this.objectIdGenerator = new IdGenerator(32, "object-id");
-    }
-
-    @ApiOperation("获取文件图标")
-    @GetMapping(value = "/bucket/file/file_icon.json", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String getFileIcon() {
-        List<FileIcon> list = fileTypeMapper.findAll1();
-        return WebBody.success(list);
-    }
-
-    @ApiOperation("获取存储桶中的部分对象")
-    @GetMapping(value = "/bucket/file/list_objects.json", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String getObjects(@Validated GetObjects getObjects) {
-        String bucket = getObjects.getBucket();
-        String prefix = getObjects.getPrefix();
-        String startAfter = getObjects.getMarker();
-        String delimiter = getObjects.getDelimiter();
-        Integer maxKeys = getObjects.getMaxKeys();
-
-        int count = fileMetaMapper.count();
-        List<FileMeta> list = fileMetaMapper.findAll1(prefix);
-        List<ObjectJson> list1 = list.stream().map(fileMeta -> {
-            ObjectJson objectJson = new ObjectJson();
-            Integer fileTypeId = fileMeta.getFileTypeId();
-            objectJson.setDir(fileTypeId == 1000);
-
-            String objectName = fileMeta.getObjectName();
-            String[] names = objectName.split("/");
-            String name = names[names.length-1];
-            objectJson.setName(name);
-            objectJson.setPath(objectName);
-            long size = fileMeta.getSize();
-            objectJson.setSize(size);
-            objectJson.setFormattedSize(String.valueOf(size));
-            objectJson.setObjectType("Normal");
-            objectJson.setType(fileTypeId);
-            objectJson.setStorageClass("Standard");
-            objectJson.setTimeModified(DateTimeConverter.msTimestamp(fileMeta.getUpdateTime()));
-            return objectJson;
-        }).collect(Collectors.toList());
-
-        ListObjects listObjects = new ListObjects();
-        listObjects.setObjectList(list1);
-        listObjects.setBucketName(bucket);
-        listObjects.setDelimiter(delimiter);
-        listObjects.setMaxKeys(maxKeys);
-        listObjects.setObjectSize(0L);
-        listObjects.setTruncated(true);
-        return WebBody.success(listObjects);
-    }
-
-    @ApiOperation("创建目录")
-    @PostMapping(value = "/bucket/file/create_folder.json", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String createFolder(@Validated CreateFolder createFolder) {
-        String objectName = createFolder.getObjectName();
-        List<String> objectNames = new ArrayList<>();
-        String[] names = objectName.split("/");
-        for (int i = 0; i < names.length; i++) {
-            if (i == 0) {
-                objectNames.add(names[i] + "/");
-            } else {
-                String tmp = objectNames.get(i-1) + names[i] + "/";
-                objectNames.add(tmp);
-            }
-        }
-
-        FileMeta fileMeta;
-        int i = 0;
-        for (; i < objectNames.size(); i++) {
-            fileMeta = fileMetaMapper.findByObjectName(objectNames.get(i));
-            if (fileMeta == null) {
-                break;
-            }
-        }
-
-        List<FileMeta> list = new ArrayList<>();
-        for (int j = i; j < objectNames.size(); j++) {
-            String objectName1 = objectNames.get(j);
-            String objectId = objectIdGenerator.stringId();
-            String[] names1 = objectName1.split("/");
-            String filename = names1[names1.length-1];
-            list.add(new FileMeta(objectName1, objectId, filename, "tnb"));
-        }
-
-        if (!list.isEmpty()) {
-            fileMetaMapper.saveAll(list);
-        }
-        return WebBody.success();
-    }
-
-    @ApiOperation("获取域名列表")
-    @GetMapping(value = "/bucket/domain/list.json", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String domainList() {
-        return WebBody.success();
-    }
-
-    @ApiOperation("获取 bucket ACL")
-    @GetMapping(value = "/bucket/acl.json", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String bucketAcl() {
-        return WebBody.success();
-    }
-
-    @ApiOperation("获取对象 ACL")
-    @GetMapping(value = "/bucket/file/get_object_acl.json", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String obejctAcl() {
-        return WebBody.success();
-    }
-
-    @ApiOperation("获取对象信息")
-    @GetMapping(value = "/bucket/file/head_object.json", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String headObject(@Validated HeadObject headObject) {
-        return WebBody.success();
-    }
-
-    @ApiOperation("生成带签名的 URL")
-    @PostMapping(value = "/bucket/file/generate_url_with_signed.json", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String generateSignedUrl(@Validated GenerateSignedUrl generateSignedUrl) {
-        String objectName = generateSignedUrl.getObjectName();
-        String url = String.format("//oss.reghao.cn/object/%s", objectName);
-        // 5 分钟后链接失效
-        long expires = System.currentTimeMillis()/1000 + 300;
-        String ossAccessId = "TMP.3KeSkQJhXm4fZNupmzTEFx8HQ7QobdYnbc4A5do6zvqDnkkHdwyKj2rvJzPCfprxBSfHM6H3tqci21rCnHwWEmVje3PHaA";
-        String signature = "C1NieNpY%2FrmgaHNM2PXTPU3Tshw%3D";
-        String param = String.format("Expires=%s&OSSAccessId=%s&Signature=%s", expires, ossAccessId, signature);
-
-        GenerateSignedUrlResult generateSignedUrlResult = new GenerateSignedUrlResult(url, param);
-        return WebBody.success(generateSignedUrlResult);
-    }
-}

+ 0 - 39
src/main/java/cn/reghao/dfs/store/oss/controller/RegionBasicJsonController.java

@@ -1,39 +0,0 @@
-package cn.reghao.dfs.store.oss.controller;
-
-import cn.reghao.dfs.store.oss.db.mapper.RegionMapper;
-import cn.reghao.dfs.store.oss.model.po.Region;
-import cn.reghao.dfs.store.oss.model.vo.KeyValue;
-import cn.reghao.jutil.jdk.result.WebBody;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.http.MediaType;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * @author reghao
- * @date 2023-01-05 09:20:19
- */
-@Api(tags = "地区基础操作接口")
-@RestController
-@RequestMapping("/ajax")
-public class RegionBasicJsonController {
-    private final RegionMapper regionMapper;
-
-    public RegionBasicJsonController(RegionMapper regionMapper) {
-        this.regionMapper = regionMapper;
-    }
-
-    @ApiOperation("获取地区列表")
-    @GetMapping(value = "/region/list.json", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String getBucketList() {
-        List<KeyValue> list = regionMapper.findAll().stream().map(region -> {
-            return new KeyValue(region.getNameZhCn(), region.getLocation());
-        }).collect(Collectors.toList());
-        return WebBody.success(list);
-    }
-}

+ 0 - 17
src/main/java/cn/reghao/dfs/store/oss/db/mapper/FileTypeMapper.java

@@ -1,17 +0,0 @@
-package cn.reghao.dfs.store.oss.db.mapper;
-
-import cn.reghao.dfs.store.oss.model.dto.json.FileIcon;
-import cn.reghao.dfs.store.oss.model.po.FileType;
-import cn.reghao.jutil.jdk.db.BaseMapper;
-import org.apache.ibatis.annotations.Mapper;
-
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2022-12-27 16:59:15
- */
-@Mapper
-public interface FileTypeMapper extends BaseMapper<FileType> {
-    List<FileIcon> findAll1();
-}

+ 0 - 32
src/main/java/cn/reghao/dfs/store/oss/model/dto/json/CreateBucket.java

@@ -1,32 +0,0 @@
-package cn.reghao.dfs.store.oss.model.dto.json;
-
-import lombok.Getter;
-import lombok.Setter;
-
-import java.io.Serializable;
-
-/**
- * @author reghao
- * @date 2023-01-05 09:09:52
- */
-@Setter
-@Getter
-public class CreateBucket implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    private String umid;
-    private String token;
-    private String secToken;
-    private String collina;
-    private String region;
-    private String bucket;
-    private String storage;
-    private String acl;
-    private String dataRedundancyType;
-    private Boolean openSls;
-    private String algorithm;
-    private Boolean openHbr;
-    private String keyId;
-    private String kmsEncryptionAlgorithm;
-    private String resourceGroupId;
-}

+ 0 - 28
src/main/java/cn/reghao/dfs/store/oss/model/dto/json/CreateFolder.java

@@ -1,28 +0,0 @@
-package cn.reghao.dfs.store.oss.model.dto.json;
-
-import lombok.Getter;
-import lombok.Setter;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.Pattern;
-import java.io.Serializable;
-
-/**
- * @author reghao
- * @date 2023-01-03 10:47:19
- */
-@Setter
-@Getter
-public class CreateFolder implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    private String umid;
-    private String token;
-    private String secToken;
-    private String collina;
-    private String region;
-    private String bucket;
-    @NotBlank
-    //@Pattern(regexp = "")
-    private String objectName;
-}

+ 0 - 16
src/main/java/cn/reghao/dfs/store/oss/model/dto/json/FileIcon.java

@@ -1,16 +0,0 @@
-package cn.reghao.dfs.store.oss.model.dto.json;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * @author reghao
- * @date 2023-01-03 14:30:46
- */
-@Setter
-@Getter
-public class FileIcon {
-    private Integer id;
-    private String icon;
-    private String iconLarge;
-}

+ 0 - 25
src/main/java/cn/reghao/dfs/store/oss/model/dto/json/GenerateSignedUrl.java

@@ -1,25 +0,0 @@
-package cn.reghao.dfs.store.oss.model.dto.json;
-
-import lombok.Getter;
-import lombok.Setter;
-
-import java.io.Serializable;
-
-/**
- * @author reghao
- * @date 2023-01-03 10:47:19
- */
-@Setter
-@Getter
-public class GenerateSignedUrl implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    private String umid;
-    private String token;
-    private String secToken;
-    private String collina;
-    private String region;
-    private String bucket;
-    private String objectName;
-    private Integer timeout;
-}

+ 0 - 15
src/main/java/cn/reghao/dfs/store/oss/model/dto/json/GenerateSignedUrlResult.java

@@ -1,15 +0,0 @@
-package cn.reghao.dfs.store.oss.model.dto.json;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-/**
- * @author reghao
- * @date 2023-01-03 10:47:19
- */
-@AllArgsConstructor
-@Getter
-public class GenerateSignedUrlResult {
-    private String url;
-    private String signature;
-}

+ 0 - 29
src/main/java/cn/reghao/dfs/store/oss/model/dto/json/GetObjects.java

@@ -1,29 +0,0 @@
-package cn.reghao.dfs.store.oss.model.dto.json;
-
-import lombok.Getter;
-import lombok.Setter;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-import java.io.Serializable;
-
-/**
- * @author reghao
- * @date 2023-01-03 10:06:08
- */
-@Setter
-@Getter
-public class GetObjects implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    @NotBlank
-    private String bucket;
-    private String region;
-    @NotNull
-    private String prefix;
-    private String marker;
-    @NotNull
-    private Integer maxKeys;
-    private String delimiter;
-    private Boolean logInfo;
-}

+ 0 - 20
src/main/java/cn/reghao/dfs/store/oss/model/dto/json/HeadObject.java

@@ -1,20 +0,0 @@
-package cn.reghao.dfs.store.oss.model.dto.json;
-
-import lombok.Getter;
-import lombok.Setter;
-
-import java.io.Serializable;
-
-/**
- * @author reghao
- * @date 2023-01-03 10:42:33
- */
-@Setter
-@Getter
-public class HeadObject implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    private String bucket;
-    private String region;
-    private String objectName;
-}

+ 0 - 23
src/main/java/cn/reghao/dfs/store/oss/model/dto/json/HeadObjectResult.java

@@ -1,23 +0,0 @@
-package cn.reghao.dfs.store.oss.model.dto.json;
-
-import lombok.Getter;
-import lombok.Setter;
-
-import java.io.Serializable;
-
-/**
- * @author reghao
- * @date 2023-01-03 10:42:33
- */
-@Setter
-@Getter
-public class HeadObjectResult implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    private String contentType;
-    private Long contentLength;
-    private String eTag;
-    private Long lastModified;
-    private String storageClass;
-    private String userMeta;
-}

Some files were not shown because too many files changed in this diff