ソースを参照

FileMetaMapper 添加 updateSetDelete 方法

reghao 1 年間 前
コミット
9fb2b3e8dc

+ 39 - 0
oss-api/src/main/java/cn/reghao/oss/api/constant/ObjectSize.java

@@ -0,0 +1,39 @@
+package cn.reghao.oss.api.constant;
+
+/**
+ * @author reghao
+ * @date 2024-10-23 10:49:04
+ */
+public enum ObjectSize {
+    Size1(1024L*1024*10, "10MB"),
+    Size2(1024L*1024*100, "100MB"),
+    Size3(1024L*1024*1024, "1GB"),
+    Size4(1024L*1024*1024*10, "10GB"),
+    Size5(1024L*1024*1024*20, "20GB");
+
+    private final long size;
+    private final String desc;
+    ObjectSize(long size, String desc) {
+        this.size = size;
+        this.desc = desc;
+    }
+
+    /**
+     * 提供给 @ValidEnum 调用
+     *
+     * @param
+     * @return
+     * @date 2023-10-11 14:44:42
+     */
+    public long getValue() {
+        return this.size;
+    }
+
+    public long getSize() {
+        return size;
+    }
+
+    public String getDesc() {
+        return desc;
+    }
+}

+ 4 - 0
oss-api/src/main/java/cn/reghao/oss/api/dto/ObjectChannel.java

@@ -15,10 +15,14 @@ public class ObjectChannel implements Serializable {
     private static final long serialVersionUID = 1L;
 
     private Integer id;
+    @Deprecated
     private Integer channelId;
+    //private Integer channelCode;
     private String prefix;
     private Long maxSize;
+    @Deprecated
     private Integer fileType;
+    //private Integer objectType;
     private Boolean seturl;
     private Integer scope;
     private String domain;

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

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

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

@@ -16,5 +16,5 @@ public interface ConsoleService {
     NodeProperties getNodeProperties(String domain);
     ObjectChannel getChannelById(int owner, int channelId);
     Integer getChannelIdByUrl(int owner, String url);
-    ServerInfo getUploadStore(int channelId);
+    ServerInfo getUploadStore(int channelCode);
 }

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

@@ -21,11 +21,11 @@ public interface StoreService {
     void createChannel(int owner, String channelPrefix, int scope);
     int countChannelObjects(String channelPrefix, int owner);
     List<DiskVolume> getDiskVolumes();
-    String getUploadToken(int channelId, int owner, int expire);
+    String getUploadToken(int channelCode, int owner, int expire);
 
     void setObjectScope(String objectId, int scope);
     void deleteByObjectId(String objectId);
-    void deleteByObjectUrl(String objectUrl);
+    void deleteByObjectName(String objectName);
     ObjectInfo getObjectInfo(String objectId);
     String getSignedUrl(String domain, int owner, String objectId, int expire);
 

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

@@ -16,6 +16,7 @@ import java.util.List;
 @Mapper
 public interface FileMetaMapper extends BaseMapper<FileMeta> {
     void updateScopeByObjectName(@Param("scope") int scope, @Param("objectName") String objectName);
+    void updateSetDelete(String objectId);
 
     int countByObjectNamePrefix(@Param("objectName") String objectName, @Param("uploadBy") int uploadBy);
     FileMeta findBySha256sum(String sha256sum);

+ 5 - 0
oss-store/src/main/java/cn/reghao/oss/store/db/repository/ObjectRepository.java

@@ -64,6 +64,11 @@ public class ObjectRepository {
         }
     }
 
+    @CacheEvict(cacheNames = "oss:store:objectMeta", key = "#fileMeta.objectName")
+    public void updateSetDelete(FileMeta fileMeta) {
+        fileMetaMapper.updateSetDelete(fileMeta.getObjectId());
+    }
+
     @Transactional(rollbackFor = Exception.class)
     public void deleteObject(FileMeta fileMeta, DataBlock dataBlock) {
         fileMetaMapper.delete(fileMeta);

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

@@ -92,11 +92,11 @@ public class StoreServiceImpl implements StoreService {
     }
 
     @Override
-    public String getUploadToken(int channelId, int owner, int expire) {
+    public String getUploadToken(int channelCode, int owner, int expire) {
         String secretKey = RandomString.getString(128);
         String action = ChannelAction.upload.getName();
         long expireAt = System.currentTimeMillis() + expire*1000L;
-        OssPayload ossPayload = new OssPayload(action, channelId, owner);
+        OssPayload ossPayload = new OssPayload(action, channelCode, owner);
         String uploadToken = JwtUtil.createToken(ossPayload, expireAt, secretKey);
         cache.put(uploadToken, secretKey);
         return uploadToken;
@@ -115,8 +115,7 @@ public class StoreServiceImpl implements StoreService {
     }
 
     @Override
-    public void deleteByObjectUrl(String objectUrl) {
-        String objectName = "";
+    public void deleteByObjectName(String objectName) {
         FileMeta fileMeta = objectRepository.getByObjectName(objectName);
         objectRepository.deleteObject(fileMeta);
     }

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

@@ -32,6 +32,11 @@
         set scope=#{scope}
         where object_name=#{objectName}
     </update>
+    <update id="updateSetDelete">
+        update file_meta
+        set deleted=1
+        where object_id=#{objectId}
+    </update>
     <update id="updateScopeByObjectNames">
         update file_meta
         set scope=#{scope}