reghao 1 år sedan
förälder
incheckning
4e9ad5e471

+ 0 - 24
oss-api/src/main/java/cn/reghao/oss/api/dto/FileInfo.java

@@ -1,24 +0,0 @@
-package cn.reghao.oss.api.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-import java.io.Serializable;
-
-/**
- * @author reghao
- * @date 2024-07-11 16:42:40
- */
-@AllArgsConstructor
-@Getter
-public class FileInfo implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    private String objectId;
-    private String objectName;
-    private int fileType;
-    private String fileTypeStr;
-    private String filename;
-    private String size;
-    private String updateTime;
-}

+ 6 - 1
oss-api/src/main/java/cn/reghao/oss/api/dto/ObjectInfo.java

@@ -1,6 +1,7 @@
 package cn.reghao.oss.api.dto;
 
 import lombok.Getter;
+import lombok.NoArgsConstructor;
 
 import java.io.Serializable;
 
@@ -8,6 +9,7 @@ import java.io.Serializable;
  * @author reghao
  * @date 2023-11-29 18:11:13
  */
+@NoArgsConstructor
 @Getter
 public class ObjectInfo implements Serializable {
     private static final long serialVersionUID = 1L;
@@ -18,14 +20,17 @@ public class ObjectInfo implements Serializable {
     private String filename;
     private long size;
     private String url;
+    private int scope;
+    private String updateTime;
 
-    public ObjectInfo(String objectId, String objectName, int fileType, String filename, long size) {
+    public ObjectInfo(String objectId, String objectName, int fileType, String filename, long size, int scope) {
         this.objectId = objectId;
         this.objectName = objectName;
         this.fileType = fileType;
         this.filename = filename;
         this.size = size;
         this.url = objectName;
+        this.scope = scope;
     }
 
     public void setUrl(String url) {

+ 0 - 2
oss-api/src/main/java/cn/reghao/oss/api/dto/ServerInfo.java

@@ -15,9 +15,7 @@ public class ServerInfo implements Serializable {
     private static final long serialVersionUID = 1L;
 
     private String ossUrl;
-    @Deprecated
     private int channelCode;
-    //private int channelCode;
     private long maxSize;
     private String token;
 }

+ 1 - 2
oss-api/src/main/java/cn/reghao/oss/api/iface/StoreService.java

@@ -1,7 +1,6 @@
 package cn.reghao.oss.api.iface;
 
 import cn.reghao.jutil.jdk.db.PageList;
-import cn.reghao.oss.api.dto.FileInfo;
 import cn.reghao.oss.api.dto.ObjectInfo;
 import cn.reghao.oss.api.dto.disk.DiskVolume;
 import cn.reghao.oss.api.dto.media.AudioInfo;
@@ -36,5 +35,5 @@ public interface StoreService {
     ConvertedImageInfo getWebpInfo(String objectId);
     AudioInfo getAudioInfo(String objectId);
 
-    PageList<FileInfo> getByPrefix(int owner, String objectName, int pn, int ps);
+    PageList<ObjectInfo> getByPrefix(int owner, String objectName, int pn, int ps);
 }

+ 0 - 2
oss-media/src/main/java/cn/reghao/oss/store/db/mapper/FileMetaMapper.java

@@ -1,6 +1,5 @@
 package cn.reghao.oss.store.db.mapper;
 
-import cn.reghao.oss.api.dto.FileInfo;
 import cn.reghao.oss.store.model.po.FileMeta;
 import cn.reghao.oss.api.dto.ObjectMeta;
 import cn.reghao.jutil.jdk.db.BaseMapper;
@@ -23,7 +22,6 @@ public interface FileMetaMapper extends BaseMapper<FileMeta> {
     List<FileMeta> findByContentId(String contentId);
     ObjectMeta findObjectMeta(String objectName);
     ObjectMeta findObjectMetaById(String objectName);
-    List<FileInfo> findByPid(@Param("pid") String pid, @Param("pageSize") int pageSize, @Param("nextId") String nextId);
     List<ObjectMeta> findByPrefix(@Param("prefix") String pid,
                                   @Param("pageSize") int pageSize,
                                   @Param("nextId") int nextId);

+ 1 - 2
oss-sdk/src/main/java/cn/reghao/oss/sdk/ObjectMultipartUploadService.java

@@ -51,8 +51,7 @@ public class ObjectMultipartUploadService {
      * @return
      * @date 2024-10-29 15:43:46
      */
-    public UploadedPart getUploadedParts(File file, int channelCode) throws Exception {
-        String sha256sum = DigestUtil.sha256sum(file.getAbsolutePath());
+    private UploadedPart getUploadedParts(String sha256sum, int channelCode) throws Exception {
         MultiPartBodyPublisher publisher = new MultiPartBodyPublisher();
         publisher.addPart("sha256sum", sha256sum);
 

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

@@ -73,6 +73,12 @@ public class ObjectGetController {
             return;
         }
 
+        if (token == null || timestamp == null || nonce == null || sign == null) {
+            String payload = "sign invalid";
+            getObjectService.writeResponse(HttpServletResponse.SC_FORBIDDEN, payload);
+            return;
+        }
+
         String secretKey = cache.getIfPresent(token);
         String queryString = String.format("token=%s&t=%s&nonce=%s", token, timestamp, nonce);
         String host = ServletUtil.getHeader("host");

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

@@ -1,6 +1,7 @@
 package cn.reghao.oss.store.db.mapper;
 
 import cn.reghao.jutil.jdk.db.Page;
+import cn.reghao.oss.api.dto.ObjectInfo;
 import cn.reghao.oss.store.model.po.FileMeta;
 import cn.reghao.oss.api.dto.ObjectMeta;
 import cn.reghao.jutil.jdk.db.BaseMapper;
@@ -25,7 +26,7 @@ public interface FileMetaMapper extends BaseMapper<FileMeta> {
     ObjectMeta findObjectMetaByName(@Param("objectName") String objectName, @Param("owner") int owner);
     ObjectMeta findObjectMetaById(String objectId);
     int countByPid(String pid);
-    List<FileMeta> findPidByPage(Page page, @Param("pid") String pid);
+    List<ObjectInfo> findPidByPage(Page page, @Param("pid") String pid);
 
     /******************************************************************************************************************/
     List<FileMeta> findAll0(@Param("objectId") String objectId, @Param("max") Integer max, @Param("regex") String regex);

+ 8 - 26
oss-store/src/main/java/cn/reghao/oss/store/db/repository/ObjectRepository.java

@@ -1,11 +1,7 @@
 package cn.reghao.oss.store.db.repository;
 
-import cn.reghao.jutil.jdk.converter.ByteConverter;
-import cn.reghao.jutil.jdk.converter.ByteType;
-import cn.reghao.jutil.jdk.converter.DateTimeConverter;
 import cn.reghao.jutil.jdk.db.Page;
-import cn.reghao.oss.api.constant.ObjectType;
-import cn.reghao.oss.api.dto.FileInfo;
+import cn.reghao.oss.api.dto.ObjectInfo;
 import cn.reghao.oss.store.db.mapper.DataBlockMapper;
 import cn.reghao.oss.store.db.mapper.FileMetaMapper;
 import cn.reghao.oss.store.model.po.DataBlock;
@@ -14,12 +10,12 @@ import cn.reghao.oss.api.dto.ObjectMeta;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.io.FileUtils;
 import org.springframework.cache.annotation.CacheEvict;
+import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.io.File;
 import java.util.List;
-import java.util.stream.Collectors;
 
 /**
  * @author reghao
@@ -30,7 +26,6 @@ import java.util.stream.Collectors;
 public class ObjectRepository {
     private final FileMetaMapper fileMetaMapper;
     private final DataBlockMapper dataBlockMapper;
-    private final ByteConverter byteConverter = new ByteConverter();
 
     public ObjectRepository(FileMetaMapper fileMetaMapper, DataBlockMapper dataBlockMapper) {
         this.fileMetaMapper = fileMetaMapper;
@@ -91,10 +86,9 @@ public class ObjectRepository {
         return fileMetaMapper.findBySha256sum(sha256sum);
     }
 
-    //@Cacheable(cacheNames = "oss:store:objectMeta", key = "#objectName", unless = "#result == null")
+    @Cacheable(cacheNames = "oss:store:objectMeta", key = "#objectName+'-'+#owner", unless = "#result == null")
     public ObjectMeta getObjectMetaByName(String objectName, int owner) {
         log.info("cache miss {}", objectName);
-        FileMeta fileMeta = fileMetaMapper.findByObjectName(objectName, owner);
         ObjectMeta objectMeta = fileMetaMapper.findObjectMetaByName(objectName, owner);
         return objectMeta;
     }
@@ -107,24 +101,14 @@ public class ObjectRepository {
         return fileMetaMapper.countByPid(pid);
     }
 
-    public List<FileInfo> getObjectsByPage(String pid, int pn, int ps) {
+    public List<ObjectInfo> getObjectsByPage(String pid, int pn, int ps) {
         Page page = new Page(pn, ps);
-        List<FileMeta> list = fileMetaMapper.findPidByPage(page, pid);
-        return list.stream().map(this::getFileInfo).collect(Collectors.toList());
+        List<ObjectInfo> list = fileMetaMapper.findPidByPage(page, pid);
+        return list;
     }
 
-    private FileInfo getFileInfo(FileMeta fileMeta) {
-        String objectId = fileMeta.getObjectId();
-        String objectName = fileMeta.getObjectName();
-        int fileType = fileMeta.getFileType();
-        String fileTypeStr = ObjectType.getDescByCode(fileMeta.getFileType());
-        String filename = fileMeta.getFilename();
-        String size = byteConverter.convert(ByteType.Bytes, fileMeta.getSize());
-        String updateTime = DateTimeConverter.format(fileMeta.getUpdateTime());
-        return new FileInfo(objectId, objectName, fileType, fileTypeStr, filename, size, updateTime);
-    }
-
-    List<FileInfo> getObjects() {
+    @Deprecated
+    void getObjects() {
         String bucket = "";
         String prefix = "image/i/";
         String startAfter = "image/cover/";
@@ -140,7 +124,5 @@ public class ObjectRepository {
         } else {
             list = fileMetaMapper.findAll2(bucket, prefix, startAfter, maxKeys);
         }
-
-        return list.stream().map(this::getFileInfo).collect(Collectors.toList());
     }
 }

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

@@ -145,7 +145,8 @@ public class StoreServiceImpl implements StoreService {
         int fileType = fileMeta.getFileType();
         String filename = fileMeta.getFilename();
         long size = fileMeta.getSize();
-        return new ObjectInfo(objectId, objectName, fileType, filename, size);
+        int scope = fileMeta.getScope();
+        return new ObjectInfo(objectId, objectName, fileType, filename, size, scope);
     }
 
     @Override
@@ -203,7 +204,7 @@ public class StoreServiceImpl implements StoreService {
     }
 
     @Override
-    public PageList<FileInfo> getByPrefix(int owner, String objectName, int pn, int ps) {
+    public PageList<ObjectInfo> getByPrefix(int owner, String objectName, int pn, int ps) {
         String pid = "0";
         if (!objectName.isBlank()) {
             FileMeta fileMeta = objectRepository.getByObjectName(objectName, owner);
@@ -213,7 +214,7 @@ public class StoreServiceImpl implements StoreService {
         }
 
         int total = objectRepository.countByPid(pid);
-        List<FileInfo> list = objectRepository.getObjectsByPage(pid, pn, ps);
+        List<ObjectInfo> list = objectRepository.getObjectsByPage(pid, pn, ps);
         return PageList.pageList(pn, ps, total, list);
     }
 }

+ 2 - 2
oss-store/src/main/resources/mapper/FileMetaMapper.xml

@@ -142,8 +142,8 @@
         from file_meta
         where deleted=0 and pid=#{pid}
     </select>
-    <select id="findPidByPage" resultType="cn.reghao.oss.store.model.po.FileMeta">
-        select *
+    <select id="findPidByPage" resultType="cn.reghao.oss.api.dto.ObjectInfo">
+        select size,object_name,object_id,file_type,filename,date_format(update_time, '%Y-%m-%d %H:%i:%s') as update_time
         from file_meta
         where deleted=0 and pid=#{pid}
     </select>