lyhzzz hai 2 meses
pai
achega
c49b9efaa0

+ 1 - 1
src/main/java/com/fdkankan/fusion/common/FilePath.java

@@ -19,5 +19,5 @@ public class FilePath {
     public final static String OFFLINE_RESOURCE_PACKAGE_PATH = OFFLINE_PACKAGE_PATH + "%s/www/package/resource/";
     public final static String OFFLINE_OSS_PATH = OFFLINE_PACKAGE_PATH + "%s/www";
     public final static String OFFLINE_LASER_OSS_PATH =  "/swss/%s/www/%s/";
-    public final static String LASER_OSS_PATH = "laser-prod/%s/data/%s/webcloud";
+    public final static String LASER_OSS_PATH = "/%s/data/%s/webcloud";
 }

+ 55 - 0
src/main/java/com/fdkankan/fusion/common/util/UploadToOssUtil.java

@@ -5,6 +5,7 @@ import cn.hutool.core.io.FileUtil;
 import com.aliyun.oss.OSSClient;
 import com.aliyun.oss.common.utils.BinaryUtil;
 import com.aliyun.oss.model.*;
+import com.fdkankan.fusion.config.LaserOssConfig;
 import com.fdkankan.fusion.response.FileInfoVo;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.io.FileUtils;
@@ -47,6 +48,9 @@ public class UploadToOssUtil {
 	@Autowired
 	LocalToOssUtil localToOssUtil;
 
+	@Autowired
+	LaserOssConfig laserOssConfig;
+
 
 	/**
 	 * 获取文件内容-阿里云
@@ -343,6 +347,30 @@ public class UploadToOssUtil {
 		return null;
 	}
 
+	public FileInfoVo getFileInfo(String bucket,String filePath){
+		if("local".equals(type)){
+			return localToOssUtil.getFileInfo(filePath);
+		}
+		OSSClient ossClient = new OSSClient(point, key, secrey);
+		try {
+			GetObjectRequest getObjectMetadataRequest = new GetObjectRequest(bucket, filePath);
+			Date LastMo = ossClient.getObjectMetadata(getObjectMetadataRequest).getLastModified();
+			String md5 = ossClient.getObjectMetadata(getObjectMetadataRequest).getETag();
+			Long size = ossClient.getObjectMetadata(getObjectMetadataRequest).getContentLength();
+
+			InputStream inputStream = ossClient.getObject(bucket, filePath).getObjectContent();
+			String sha1 = MD5Checksum.getSHA1(inputStream);
+			return new FileInfoVo(md5,sha1.toUpperCase(),LastMo.getTime(),size);
+		}catch (Exception e){
+			log.info("oss-getFileInfo-error:{}",filePath,e);
+		}finally {
+			if(ossClient != null){
+				ossClient.shutdown();
+			}
+		}
+		return null;
+	}
+
 	public Long getSize(String filePath){
 		if("local".equals(type)){
 			return localToOssUtil.getSize(filePath);
@@ -370,6 +398,33 @@ public class UploadToOssUtil {
 		return total;
 	}
 
+	public Long getSize(String bucket,String filePath){
+		if("local".equals(type)){
+			return localToOssUtil.getSize(filePath);
+		}
+		OSSClient ossClient = new OSSClient(point, key, secrey);
+		Long total = 0L;
+		try {
+			List<String> files = listKeysFromAli( filePath);
+			if (ObjectUtils.isEmpty(files)) {
+				return 0L;
+			}
+			for (String file : files) {
+				GetObjectRequest getObjectMetadataRequest = new GetObjectRequest(bucket, file);
+				Long size = ossClient.getObjectMetadata(getObjectMetadataRequest).getContentLength();
+				total += size;
+			}
+
+		}catch (Exception e){
+			log.info("oss-getFileInfo-error:{}",e);
+		}finally {
+			if(ossClient != null){
+				ossClient.shutdown();
+			}
+		}
+		return total;
+	}
+
 	public String getOssPath(String path) {
 		return path.replace(queryPath,"");
 	}

+ 14 - 0
src/main/java/com/fdkankan/fusion/config/LaserOssConfig.java

@@ -0,0 +1,14 @@
+package com.fdkankan.fusion.config;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class LaserOssConfig {
+
+    @Value("${laser.bucket:laser-data}")
+    public String laserBucket;
+
+    @Value("${laser.base-path:testdata}")
+    public String laserBasePath;
+}

+ 7 - 4
src/main/java/com/fdkankan/fusion/controller/SceneController.java

@@ -5,6 +5,7 @@ import com.fdkankan.fusion.common.FilePath;
 import com.fdkankan.fusion.common.ResultCode;
 import com.fdkankan.fusion.common.ResultData;
 import com.fdkankan.fusion.common.util.UploadToOssUtil;
+import com.fdkankan.fusion.config.LaserOssConfig;
 import com.fdkankan.fusion.exception.BusinessException;
 import com.fdkankan.fusion.httpClient.request.LaserSceneParam;
 import com.fdkankan.fusion.request.ScenePram;
@@ -28,6 +29,8 @@ public class SceneController extends BaseController{
 
     @Autowired
     ISceneService sceneService;
+    @Autowired
+    LaserOssConfig laserOssConfig;
 
     @PostMapping("/list")
     public ResultData list(@RequestBody ScenePram param){
@@ -86,10 +89,10 @@ public class SceneController extends BaseController{
             String sceneObjPath =null;
 
             if(type == 2 || type == 5){  //点云
-                sceneObjPath = String.format(FilePath.LASER_OSS_PATH, num,num)+"/cloud.js" ;
-                fileInfo = uploadToOssUtil.getFileInfo(sceneObjPath);
-                String scenePath = String.format(FilePath.LASER_OSS_PATH, num,num);
-                size = uploadToOssUtil.getSize(scenePath);
+                sceneObjPath = laserOssConfig.laserBasePath + String.format(FilePath.LASER_OSS_PATH, num,num)+"/cloud.js" ;
+                fileInfo = uploadToOssUtil.getFileInfo(laserOssConfig.laserBucket,sceneObjPath);
+                String scenePath = laserOssConfig.laserBasePath +String.format(FilePath.LASER_OSS_PATH, num,num);
+                size = uploadToOssUtil.getSize(laserOssConfig.laserBucket,scenePath);
             }else {
                 sceneObjPath = String.format(FilePath.OBJ_OSS_PATH,num) + "/images/3dtiles/tileset.json";
                 if(!uploadToOssUtil.existKey(sceneObjPath)){

+ 5 - 1
src/main/resources/application-prod.yaml

@@ -54,4 +54,8 @@ spring:
     port: 80
   takeLookService:
     basePath: https://www.4dkankan.com
-    port: 80
+    port: 80
+
+laser:
+  bucket: laser-data
+  base-path: datav1

+ 6 - 1
src/main/resources/application-test.yaml

@@ -54,4 +54,9 @@ spring:
     basePath: http://test.4dkankan.com/qjkankan
   takeLookService:
     basePath: https://v4-test.4dkankan.com
-    port: 80
+    port: 80
+
+
+laser:
+  bucket: laser-data
+  base-path: testdata