Jelajahi Sumber

修改 ObjectInfo 字段和 getObjectInfo 方法参数

reghao 2 tahun lalu
induk
melakukan
e3b04564aa

+ 19 - 9
oss-store/src/main/java/cn/reghao/oss/store/rpc/ObjectServiceImpl.java

@@ -1,17 +1,17 @@
 package cn.reghao.oss.store.rpc;
 
-import cn.reghao.jutil.media.ImageOps;
+import cn.reghao.oss.store.api.constant.ObjectScope;
 import cn.reghao.oss.store.api.dto.*;
 import cn.reghao.oss.store.db.repository.ObjectRepository;
 import cn.reghao.oss.store.model.po.FileMeta;
 import cn.reghao.oss.store.service.ObjectNameService;
 import cn.reghao.oss.store.api.iface.ObjectService;
 import cn.reghao.oss.store.db.mapper.FileMetaMapper;
+import cn.reghao.oss.store.service.SignService;
+import cn.reghao.oss.store.service.StoreLocalCache;
 import org.apache.dubbo.config.annotation.DubboService;
 import org.springframework.stereotype.Service;
 
-import java.io.File;
-import java.io.IOException;
 import java.util.List;
 
 /**
@@ -25,13 +25,15 @@ public class ObjectServiceImpl implements ObjectService {
     private final ObjectNameService objectNameService;
     private final ObjectRepository objectRepository;
     private final SignService signService;
+    private final StoreLocalCache storeLocalCache;
 
     public ObjectServiceImpl(FileMetaMapper fileMetaMapper, ObjectNameService objectNameService,
-                             ObjectRepository objectRepository, SignService signService) {
+                             ObjectRepository objectRepository, SignService signService, StoreLocalCache storeLocalCache) {
         this.fileMetaMapper = fileMetaMapper;
         this.objectNameService = objectNameService;
         this.objectRepository = objectRepository;
         this.signService = signService;
+        this.storeLocalCache = storeLocalCache;
     }
 
     @Override
@@ -60,7 +62,7 @@ public class ObjectServiceImpl implements ObjectService {
     }
 
     @Override
-    public ObjectInfo getObjectInfo(String objectId) {
+    public ObjectInfo getObjectInfo(int loginUser, String objectId, int expireSecond) {
         FileMeta fileMeta = fileMetaMapper.findByObjectId(objectId);
         if (fileMeta == null) {
             return null;
@@ -69,9 +71,17 @@ public class ObjectServiceImpl implements ObjectService {
         String objectName = fileMeta.getObjectName();
         int fileType = fileMeta.getFileType();
         String filename = fileMeta.getFilename();
-        long size = fileMeta.getSize();
-        ObjectInfo objectInfo = new ObjectInfo(objectId, objectName, fileType, filename, size);
-        if (fileType == 1001) {
+        ObjectInfo objectInfo = new ObjectInfo(objectId, objectName, fileType, filename);
+        String url = String.format("//%s/%s", storeLocalCache.getDomain(), objectName);
+        int scope = fileMeta.getScope();
+        if (scope != ObjectScope.PUBLIC.getCode()) {
+            String signedUrl = signService.getSignedUrl(loginUser, url, expireSecond);
+            objectInfo.setUrl(signedUrl);
+        } else {
+            objectInfo.setUrl(url);
+        }
+
+        /*if (fileType == 1001) {
             ObjectMeta objectMeta = objectRepository.getObjectMetaById(objectId);
             String absolutePath = objectMeta.getAbsolutePath();
             try {
@@ -81,7 +91,7 @@ public class ObjectServiceImpl implements ObjectService {
             } catch (IOException e) {
                 e.printStackTrace();
             }
-        }
+        }*/
 
         return objectInfo;
     }

+ 1 - 1
oss-store/src/main/java/cn/reghao/oss/store/rpc/media/AudioFileServiceImpl.java

@@ -4,7 +4,7 @@ import cn.reghao.oss.store.api.iface.ObjectService;
 import cn.reghao.oss.store.db.mapper.AudioFileMapper;
 import cn.reghao.oss.store.db.repository.AudioRepository;
 import cn.reghao.oss.store.model.po.AudioFile;
-import cn.reghao.oss.store.rpc.SignService;
+import cn.reghao.oss.store.service.SignService;
 import cn.reghao.oss.store.api.dto.media.AudioInfo;
 import cn.reghao.oss.store.api.dto.media.AudioUrl;
 import cn.reghao.oss.store.api.iface.media.AudioFileService;

+ 1 - 1
oss-store/src/main/java/cn/reghao/oss/store/rpc/media/VideoFileServiceImpl.java

@@ -8,7 +8,7 @@ import cn.reghao.oss.store.db.mapper.VideoFileMapper;
 import cn.reghao.oss.store.db.repository.ObjectRepository;
 import cn.reghao.oss.store.db.repository.VideoRepository;
 import cn.reghao.oss.store.model.po.VideoFile;
-import cn.reghao.oss.store.rpc.SignService;
+import cn.reghao.oss.store.service.SignService;
 import cn.reghao.oss.store.api.dto.media.VideoInfo;
 import cn.reghao.oss.store.api.dto.media.VideoUrlDto;
 import cn.reghao.oss.store.api.iface.media.VideoFileService;

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

@@ -1,6 +1,5 @@
-package cn.reghao.oss.store.rpc;
+package cn.reghao.oss.store.service;
 
-import cn.reghao.oss.store.service.StoreLocalCache;
 import cn.reghao.oss.store.util.JwtUtil;
 import cn.reghao.oss.store.util.SignatureUtil;
 import cn.reghao.oss.store.api.constant.ChannelAction;

+ 2 - 7
store-api/src/main/java/cn/reghao/oss/store/api/dto/ObjectInfo.java

@@ -16,19 +16,14 @@ public class ObjectInfo implements Serializable {
 
     private String objectId;
     private String objectName;
+    private String url;
     private int fileType;
     private String filename;
-    private long size;
-    private int width;
-    private int height;
 
-    public ObjectInfo(String objectId, String objectName, int fileType, String filename, long size) {
+    public ObjectInfo(String objectId, String objectName, int fileType, String filename) {
         this.objectId = objectId;
         this.objectName = objectName;
         this.fileType = fileType;
         this.filename = filename;
-        this.size = size;
-        this.width = 0;
-        this.height = 0;
     }
 }

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

@@ -12,5 +12,5 @@ public interface ObjectService {
     void setObjectsScope(int scope, List<String> objectIds);
     void deleteByObjectNames(List<String> objectNames);
     DownloadUrl getDownloadUrl(String objectId, int expireSecond);
-    ObjectInfo getObjectInfo(String objectId);
+    ObjectInfo getObjectInfo(int loginUser, String objectId, int expireSecond);
 }