Forráskód Böngészése

返回的 content-type 类型设置为 xml

reghao 3 éve
szülő
commit
ff539c54cf
30 módosított fájl, 162 hozzáadás és 55 törlés
  1. 6 5
      src/main/java/cn/reghao/dfs/store/oss/controller/BucketController.java
  2. 1 1
      src/main/java/cn/reghao/dfs/store/oss/controller/ObjectController.java
  3. 1 1
      src/main/java/cn/reghao/dfs/store/oss/controller/ServiceController.java
  4. 1 1
      src/main/java/cn/reghao/dfs/store/oss/db/mapper/DataBlockMapper.java
  5. 1 1
      src/main/java/cn/reghao/dfs/store/oss/db/mapper/FileMetaMapper.java
  6. 0 17
      src/main/java/cn/reghao/dfs/store/oss/model/FileBlock.java
  7. 22 0
      src/main/java/cn/reghao/dfs/store/oss/model/dto/GetBucket.java
  8. 1 1
      src/main/java/cn/reghao/dfs/store/oss/model/po/ContentRange.java
  9. 1 1
      src/main/java/cn/reghao/dfs/store/oss/model/po/DataBlock.java
  10. 1 1
      src/main/java/cn/reghao/dfs/store/oss/model/po/FileMeta.java
  11. 1 1
      src/main/java/cn/reghao/dfs/store/oss/model/po/bucket/CorsConfiguration.java
  12. 1 1
      src/main/java/cn/reghao/dfs/store/oss/model/po/bucket/CorsRule.java
  13. 1 1
      src/main/java/cn/reghao/dfs/store/oss/model/po/bucket/Expiration.java
  14. 1 1
      src/main/java/cn/reghao/dfs/store/oss/model/po/bucket/Filter.java
  15. 1 1
      src/main/java/cn/reghao/dfs/store/oss/model/po/bucket/LifecycleConfiguration.java
  16. 1 1
      src/main/java/cn/reghao/dfs/store/oss/model/po/bucket/Rule.java
  17. 1 1
      src/main/java/cn/reghao/dfs/store/oss/model/po/bucket/Transition.java
  18. 1 1
      src/main/java/cn/reghao/dfs/store/oss/model/po/object/DeleteObjects.java
  19. 1 1
      src/main/java/cn/reghao/dfs/store/oss/model/po/object/PostObject.java
  20. 1 1
      src/main/java/cn/reghao/dfs/store/oss/model/po/service/Bucket.java
  21. 1 1
      src/main/java/cn/reghao/dfs/store/oss/model/po/service/ListAllMyBucketsResult.java
  22. 1 1
      src/main/java/cn/reghao/dfs/store/oss/model/po/service/Owner.java
  23. 41 0
      src/main/java/cn/reghao/dfs/store/oss/model/vo/Contents.java
  24. 1 1
      src/main/java/cn/reghao/dfs/store/oss/model/vo/InitiateMultipartUploadResult.java
  25. 44 0
      src/main/java/cn/reghao/dfs/store/oss/model/vo/ListBucketResult.java
  26. 16 3
      src/main/java/cn/reghao/dfs/store/oss/service/BucketService.java
  27. 3 3
      src/main/java/cn/reghao/dfs/store/oss/service/ObjectServiceImpl.java
  28. 2 2
      src/main/resources/mapper/oss/DataBlockMapper.xml
  29. 7 4
      src/main/resources/mapper/oss/FileMetaMapper.xml
  30. 1 1
      src/test/java/VideoFileTest.java

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

@@ -1,6 +1,7 @@
 package cn.reghao.dfs.store.oss.controller;
 
-import cn.reghao.dfs.store.oss.model.FileMeta;
+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;
@@ -25,11 +26,11 @@ public class BucketController {
     }
 
     @ApiOperation("获取存储桶中的部分对象")
-    @GetMapping(value = "/", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String getBucket(@RequestParam("listType") int listType) {
+    @GetMapping(value = "/", produces = MediaType.APPLICATION_XML_VALUE)
+    public ListBucketResult getBucket(@RequestParam("listType") int listType) {
         // listType = 2
-        List<FileMeta> list = bucketService.list();
-        return WebBody.success(list);
+        ListBucketResult listBucketResult = bucketService.list();
+        return listBucketResult;
     }
 
     @ApiOperation(value = "删除指定的存储桶")

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

@@ -1,6 +1,6 @@
 package cn.reghao.dfs.store.oss.controller;
 
-import cn.reghao.dfs.store.oss.model.object.DeleteObjects;
+import cn.reghao.dfs.store.oss.model.po.object.DeleteObjects;
 import cn.reghao.dfs.store.oss.service.ObjectServiceImpl;
 import cn.reghao.jutil.jdk.result.WebBody;
 import cn.reghao.jutil.web.ServletUtil;

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

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

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

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

+ 1 - 1
src/main/java/cn/reghao/dfs/store/oss/db/mapper/FileMetaMapper.java

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

+ 0 - 17
src/main/java/cn/reghao/dfs/store/oss/model/FileBlock.java

@@ -1,17 +0,0 @@
-package cn.reghao.dfs.store.oss.model;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2022-11-24 10:25:52
- */
-@AllArgsConstructor
-@Getter
-public class FileBlock {
-    private String objectId;
-    private List<DataBlock> dataBlocks;
-}

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

@@ -0,0 +1,22 @@
+package cn.reghao.dfs.store.oss.model.dto;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * @author reghao
+ * @date 2022-12-08 11:14:44
+ */
+public class GetBucket implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @NotNull
+    private Integer listType;
+    private Integer maxKeys;
+    private String prefix;
+    private String startAfter;
+    private String delimiter;
+    private String encodingType;
+    private String continuationToken;
+    private String fetchOwner;
+}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

+ 41 - 0
src/main/java/cn/reghao/dfs/store/oss/model/vo/Contents.java

@@ -0,0 +1,41 @@
+package cn.reghao.dfs.store.oss.model.vo;
+
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import java.time.LocalDateTime;
+
+/**
+ * @author reghao
+ * @date 2022-12-08 11:09:12
+ */
+@NoArgsConstructor
+@Getter
+@Setter
+@XmlRootElement(name = "Contents")
+@XmlAccessorType(XmlAccessType.FIELD)
+public class Contents {
+    @XmlElement(name = "Key")
+    private String key;
+    @XmlElement(name = "LastModified")
+    private LocalDateTime lastModified;
+    @XmlElement(name = "ETag")
+    private String eTag;
+    @XmlElement(name = "Size")
+    private long size;
+    @XmlElement(name = "StorageClass")
+    private String storageClass;
+
+    public Contents(String key, LocalDateTime lastModified, String sha256sum, long size) {
+        this.key = key;
+        this.lastModified = lastModified;
+        this.eTag = sha256sum;
+        this.size = size;
+        this.storageClass = "STANDARD";
+    }
+}

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

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

+ 44 - 0
src/main/java/cn/reghao/dfs/store/oss/model/vo/ListBucketResult.java

@@ -0,0 +1,44 @@
+package cn.reghao.dfs.store.oss.model.vo;
+
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import java.util.List;
+
+/**
+ * @author reghao
+ * @date 2022-12-08 11:05:52
+ */
+@NoArgsConstructor
+@Getter
+@Setter
+@XmlRootElement(name = "ListBucketResult")
+@XmlAccessorType(XmlAccessType.FIELD)
+public class ListBucketResult {
+    @XmlElement(name = "Name")
+    private String name;
+    @XmlElement(name = "Prefix")
+    private String prefix;
+    @XmlElement(name = "KeyCount")
+    private int keyCount;
+    @XmlElement(name = "MaxKeys")
+    private int maxKeys;
+    @XmlElement(name = "IsTruncated")
+    private boolean isTruncated;
+    @XmlElement(name = "Contents")
+    private List<Contents> contents;
+
+    public ListBucketResult(int keyCount, int maxKeys, List<Contents> contents) {
+        this.name = "tnb";
+        this.prefix = "/";
+        this.keyCount = keyCount;
+        this.maxKeys = maxKeys;
+        this.isTruncated = false;
+        this.contents = contents;
+    }
+}

+ 16 - 3
src/main/java/cn/reghao/dfs/store/oss/service/BucketService.java

@@ -1,10 +1,14 @@
 package cn.reghao.dfs.store.oss.service;
 
 import cn.reghao.dfs.store.oss.db.mapper.FileMetaMapper;
-import cn.reghao.dfs.store.oss.model.FileMeta;
+import cn.reghao.dfs.store.oss.model.po.FileMeta;
+import cn.reghao.dfs.store.oss.model.vo.Contents;
+import cn.reghao.dfs.store.oss.model.vo.ListBucketResult;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDateTime;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @author reghao
@@ -18,8 +22,17 @@ public class BucketService {
         this.fileMetaMapper = fileMetaMapper;
     }
 
-    public List<FileMeta> list() {
+    public ListBucketResult list() {
+        int count = fileMetaMapper.count();
         List<FileMeta> list = fileMetaMapper.findAll();
-        return list;
+        List<Contents> list1 = list.stream().map(fileMeta -> {
+            String key = fileMeta.getObjectName();
+            LocalDateTime lastModified = fileMeta.getUpdateTime();
+            String eTag = fileMeta.getSha256sum();
+            long size = fileMeta.getSize();
+            return new Contents(key, lastModified, eTag, size);
+        }).collect(Collectors.toList());
+
+        return new ListBucketResult(list1.size(), count, list1);
     }
 }

+ 3 - 3
src/main/java/cn/reghao/dfs/store/oss/service/ObjectServiceImpl.java

@@ -3,9 +3,9 @@ package cn.reghao.dfs.store.oss.service;
 import cn.reghao.dfs.store.meta.RocksClient;
 import cn.reghao.dfs.store.oss.db.mapper.DataBlockMapper;
 import cn.reghao.dfs.store.oss.db.mapper.FileMetaMapper;
-import cn.reghao.dfs.store.oss.model.ContentRange;
-import cn.reghao.dfs.store.oss.model.DataBlock;
-import cn.reghao.dfs.store.oss.model.FileMeta;
+import cn.reghao.dfs.store.oss.model.po.ContentRange;
+import cn.reghao.dfs.store.oss.model.po.DataBlock;
+import cn.reghao.dfs.store.oss.model.po.FileMeta;
 import cn.reghao.dfs.store.service.FileStoreService;
 import cn.reghao.dfs.store.service.FileUrlService;
 import cn.reghao.jutil.jdk.security.DigestUtil;

+ 2 - 2
src/main/resources/mapper/oss/DataBlockMapper.xml

@@ -23,10 +23,10 @@
         where object_id=#{objectId}
     </update>
 
-    <select id="findAll" resultType="cn.reghao.dfs.store.oss.model.DataBlock">
+    <select id="findAll" resultType="cn.reghao.dfs.store.oss.model.po.DataBlock">
         select * from data_block
     </select>
-    <select id="findByObjectId" resultType="cn.reghao.dfs.store.oss.model.DataBlock">
+    <select id="findByObjectId" resultType="cn.reghao.dfs.store.oss.model.po.DataBlock">
         select * from data_block
         where object_id=#{objectId}
     </select>

+ 7 - 4
src/main/resources/mapper/oss/FileMetaMapper.xml

@@ -15,14 +15,17 @@
         where object_id=#{objectId}
     </update>
 
-    <select id="findAll" resultType="cn.reghao.dfs.store.oss.model.FileMeta">
-        select * from file_meta
+    <select id="count" resultType="java.lang.Integer">
+        select count(*) from file_meta
+    </select>
+    <select id="findAll" resultType="cn.reghao.dfs.store.oss.model.po.FileMeta">
+        select * from file_meta limit 10
     </select>
-    <select id="findBySha256sum" resultType="cn.reghao.dfs.store.oss.model.FileMeta">
+    <select id="findBySha256sum" resultType="cn.reghao.dfs.store.oss.model.po.FileMeta">
         select * from file_meta
         where sha256sum=#{sha256sum}
     </select>
-    <select id="findByObjectName" resultType="cn.reghao.dfs.store.oss.model.FileMeta">
+    <select id="findByObjectName" resultType="cn.reghao.dfs.store.oss.model.po.FileMeta">
         select * from file_meta
         where object_name=#{objectName}
     </select>

+ 1 - 1
src/test/java/VideoFileTest.java

@@ -4,7 +4,7 @@ import cn.reghao.dfs.store.model.dto.UploadingFile;
 import cn.reghao.dfs.store.model.po.*;
 import cn.reghao.dfs.store.model.dto.UploadedFile;
 import cn.reghao.dfs.store.oss.db.mapper.DataBlockMapper;
-import cn.reghao.dfs.store.oss.model.DataBlock;
+import cn.reghao.dfs.store.oss.model.po.DataBlock;
 import cn.reghao.dfs.store.service.FileUploadService;
 import cn.reghao.dfs.store.service.media.MediaQuality;
 import cn.reghao.dfs.store.service.media.MediaResolution;