xiewj 1 год назад
Родитель
Сommit
a7d8f7bc8a
27 измененных файлов с 792 добавлено и 1678 удалено
  1. 1 1
      720yun_fd_consumer/gis_consumer/src/main/java/com/gis/constant/CmdConstant.java
  2. 1 15
      720yun_fd_consumer/gis_consumer/src/main/java/com/gis/constant/ConfigConstant.java
  3. 0 1
      720yun_fd_consumer/gis_consumer/src/main/java/com/gis/entity/SceneQueueDTO.java
  4. 27 16
      720yun_fd_consumer/gis_consumer/src/main/java/com/gis/listener/SceneListener.java
  5. 5 2
      720yun_fd_consumer/gis_consumer/src/main/java/com/gis/service/impl/FodderServiceImpl.java
  6. 75 0
      720yun_fd_consumer/gis_consumer/src/main/resources/application-locsitSD.yml
  7. 59 0
      720yun_fd_consumer/gis_consumer/src/main/resources/application-proSD.yml
  8. 77 0
      720yun_fd_consumer/gis_consumer/src/main/resources/application-sitSD.yml
  9. 123 116
      720yun_fd_consumer/gis_consumer/src/main/resources/logback-spring.xml
  10. 36 39
      720yun_fd_consumer/gis_consumer_oss/pom.xml
  11. 5 5
      720yun_fd_consumer/gis_consumer_oss/src/main/java/com/gis/oss/command/CmdConstant.java
  12. 22 1
      720yun_fd_consumer/gis_consumer_oss/src/main/java/com/gis/oss/util/FileAndOssUtil.java
  13. 6 1
      720yun_fd_consumer/gis_consumer_oss/src/main/java/com/gis/oss/util/OssShUtil.java
  14. 0 138
      720yun_fd_consumer/gis_consumer_oss/src/main/java/com/gis/oss/util/QiNiuOssUtil.java
  15. 0 1244
      720yun_fd_consumer/gis_consumer_oss/src/main/java/com/gis/oss/util/UploadToOssUtil.java
  16. 51 22
      720yun_fd_consumer/pom.xml
  17. 105 0
      720yun_fd_manage/gis_application/src/main/resources/application-proSD.yml
  18. 102 0
      720yun_fd_manage/gis_application/src/main/resources/application-sitSD.yml
  19. 2 2
      720yun_fd_manage/gis_application/src/main/resources/application.yml
  20. 27 14
      720yun_fd_manage/gis_common/pom.xml
  21. 2 23
      720yun_fd_manage/gis_common/src/main/java/com/gis/common/constant/ConfigConstant.java
  22. 7 0
      720yun_fd_manage/gis_mapper/src/main/java/com/gis/mapper/provider/WorkProvider.java
  23. 8 5
      720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/FodderServiceImpl.java
  24. 1 1
      720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/TestServiceImpl.java
  25. 9 7
      720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/WorkServiceImpl.java
  26. 2 2
      720yun_fd_manage/gis_web/src/main/java/com/gis/web/controller/TestController.java
  27. 39 23
      720yun_fd_manage/pom.xml

+ 1 - 1
720yun_fd_consumer/gis_consumer/src/main/java/com/gis/constant/CmdConstant.java

@@ -13,7 +13,7 @@ public class CmdConstant {
      *
      * yes y | 出现提醒,强制执行
      * */
-    public final static String PANO_KRPANO = "krpanotools makepano -config=templates/vtour-multires.config ";
+    public final static String PANO_KRPANO = "/opt/krpano-1.21.2/krpanotools makepano -config=templates/vtour-multires.config ";
 
     /**
      * ossUtil上传目录

+ 1 - 15
720yun_fd_consumer/gis_consumer/src/main/java/com/gis/constant/ConfigConstant.java

@@ -20,23 +20,9 @@ public class ConfigConstant {
     @Value("${project.name}")
     public String projectName;
 
-    @Value("${oss.point}")
-    public  String ossPoint;
-
-    @Value("${oss.key}")
-    public  String ossKey;
-
-    @Value("${oss.secrecy}")
-    public  String ossSecrecy;
-
-    @Value("${oss.bucket}")
-    public  String ossBucket;
-
-    @Value("${oss.file.path}")
+    @Value("${config.bashPath}")
     public  String ossBasePath;
 
-    @Value("${oss.domain}")
-    public  String ossDomain;
 
     /*********************** 其他参数 ***********************/
 

+ 0 - 1
720yun_fd_consumer/gis_consumer/src/main/java/com/gis/entity/SceneQueueDTO.java

@@ -1,6 +1,5 @@
 package com.gis.entity;
 
-import com.amazonaws.services.dynamodbv2.xspec.S;
 import com.alibaba.fastjson.JSONObject;
 import com.google.gson.JsonObject;
 import io.swagger.annotations.ApiModelProperty;

+ 27 - 16
720yun_fd_consumer/gis_consumer/src/main/java/com/gis/listener/SceneListener.java

@@ -1,6 +1,7 @@
 package com.gis.listener;
 
 import cn.hutool.core.io.FileUtil;
+import cn.hutool.core.io.file.FileWriter;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.http.HttpRequest;
@@ -41,6 +42,7 @@ import java.io.IOException;
 import java.io.PrintWriter;
 import java.io.StringWriter;
 import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
 import java.util.*;
 import java.util.concurrent.*;
 import java.util.regex.Matcher;
@@ -77,6 +79,8 @@ public class SceneListener {
     @Resource
     private FileStorageTemplate ossUtil;
 
+    @Value("${domain.4dkk}")
+    public  String domain4dKK;
     /**
      * 全景场景初始化方法
      *
@@ -201,7 +205,7 @@ public class SceneListener {
                     scenePanoService.update(scenePanoEntity);
                 }
 
-                String visionUrl = "http://4dkk.4dage.com/scene_view_data/"+param.getSceneCode()+"/images/vision.txt";
+                String visionUrl = "http://"+domain4dKK+"/oss/scene_view_data/"+param.getSceneCode()+"/images/vision.txt";
                 HttpResponse execute = HttpRequest.get(visionUrl+"?m="+System.currentTimeMillis()).execute();
                 JSONArray sweepLocations = new JSONArray();
                 if (execute.getStatus()==200){
@@ -273,16 +277,23 @@ public class SceneListener {
     private void updateOssStatusJson(String sceneCode, int status) throws IOException {
         //修改OSS,status状态 scene_view_data/场景码/data/status.json
         String statusJson = "scene_view_data/"+sceneCode+"/data/status.json";
-        Boolean exist=ossUtil.doesObjectExist("4dkankan",statusJson);
-        if (exist){
-            String statusJsonUrl = "http://4dkk.4dage.com/"+statusJson;
-            HttpResponse execute = HttpRequest.get(statusJsonUrl+"?m="+System.currentTimeMillis()).execute();
-            if (execute.getStatus()==200){
-                log.info("statusJson存在: {}");
-                JSONObject statusJsonObj = JSONObject.parseObject(execute.body());
-                statusJsonObj.put("status",status);
-                fileAndOssUtil.upload("4dkankan",statusJsonObj.toJSONString().getBytes(StandardCharsets.UTF_8), statusJson);
-            }
+        String statusJsonUrl = "http://"+domain4dKK+"/oss/"+statusJson;
+        HttpResponse execute = HttpRequest.get(statusJsonUrl+"?m="+System.currentTimeMillis()).execute();
+        if (execute.getStatus()==200){
+            log.info("statusJson存在: {}");
+            JSONObject statusJsonObj = JSONObject.parseObject(execute.body());
+            statusJsonObj.put("status",status);
+//            fileAndOssUtil.upload("4dkankan",statusJsonObj.toJSONString().getBytes(StandardCharsets.UTF_8), statusJson);
+
+            File tempDir = Files.createTempDirectory("temp").toFile();
+            tempDir.deleteOnExit(); // 设置临时文件夹在JVM退出时删除
+            // 在临时文件夹中创建一个临时文件
+            File tempFile = File.createTempFile("temp", ".json", tempDir);
+            tempFile.deleteOnExit(); // 设置临时文件在JVM退出时删除
+            FileWriter writer = new FileWriter(tempFile);
+            writer.write(statusJsonObj.toJSONString());
+            fileAndOssUtil.uploadBySh(tempFile.getAbsolutePath(), statusJson,"4dkankan","local");
+            tempFile.delete();
         }
     }
 
@@ -343,7 +354,7 @@ public class SceneListener {
             sceneCode = RandomUtils.getSceneCode("fd720_");
             newName = sceneCode + ".jpg";
             filePath = configConstant.serverBasePath + sceneCode+ "/" + newName;
-            ossUtil.downloadFile("4dkankan",item,filePath );
+            fileAndOssUtil.downloadBySh(item, filePath,"4dkankan","local");
             entity = new ScenePanoEntity();
             entity.setFilePath(filePath);
             entity.setFileName(FileUtil.getName(filePath));
@@ -376,7 +387,7 @@ public class SceneListener {
 
 
             log.info("生成过,重新下载");
-            ossUtil.downloadFile("4dkankan",item,filePath );
+            fileAndOssUtil.downloadBySh(item, filePath,"4dkankan","local");
             log.info("下载完成重新切图");
             long size = FileUtil.size(new File(filePath));
             size = size / 1024;
@@ -412,7 +423,7 @@ public class SceneListener {
             entity.setTour(tourXmlScene);
             // 上传切图
             this.uploadOss(sceneCode);
-            String ossUrl = configConstant.ossDomain + configConstant.ossBasePath + sceneCode+"/vtour/panos/"+sceneCode+".tiles/thumb.jpg";
+            String ossUrl = ossUtil.calculateUrl("") + configConstant.ossBasePath + sceneCode+"/vtour/panos/"+sceneCode+".tiles/thumb.jpg";
             log.info("切图预览图ossUrl: {}",ossUrl);
             entity.setIcon(ossUrl);
             log.info("任务成功返回: " + obj);
@@ -561,7 +572,7 @@ public class SceneListener {
 
         // 创建二维码、二维码url
         String shareUrl = configConstant.domain4dKK + "/panorama/showMobile.html?id=" + workEntity.getId();
-        String qrCode = qrCodeUtils.generateLogoQrCode(shareUrl, configConstant.serverBasePath, configConstant.ossBasePath, configConstant.ossDomain, workEntity.getId());
+        String qrCode = qrCodeUtils.generateLogoQrCode(shareUrl, configConstant.serverBasePath, configConstant.ossBasePath, ossUtil.calculateUrl(""), workEntity.getId());
         jsonObject.put("share", shareUrl);
         jsonObject.put("qrCode", qrCode);
         jsonObject.put("icon",workEntity.getIcon());
@@ -590,7 +601,7 @@ public class SceneListener {
         } catch (IOException e) {
             e.printStackTrace();
         }
-        String ossUrl = configConstant.ossDomain + ossKeyPath;
+        String ossUrl = ossUtil.calculateUrl("") + ossKeyPath;
         log.info("ossSomeData:{}", ossUrl);
         return jsonObject;
     }

+ 5 - 2
720yun_fd_consumer/gis_consumer/src/main/java/com/gis/service/impl/FodderServiceImpl.java

@@ -4,6 +4,7 @@ import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.thread.ThreadUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.XmlUtil;
+import com.fdkankan.filestorage.FileStorageTemplate;
 import com.gis.constant.CmdConstant;
 import com.gis.constant.ConfigConstant;
 import com.gis.entity.FodderEntity;
@@ -18,6 +19,7 @@ import org.slf4j.MDC;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import java.io.File;
 import java.io.PrintWriter;
 import java.io.StringWriter;
@@ -41,7 +43,8 @@ public class FodderServiceImpl implements FodderService {
 
     @Autowired
     FileAndOssUtil fileAndOssUtil;
-
+    @Resource
+    private FileStorageTemplate ossUtil;
     // 获取切图后的tour.xml
     private String getTourXmlScene(String code) {
         log.info("处理tour.xml");
@@ -146,7 +149,7 @@ public class FodderServiceImpl implements FodderService {
             entity.setTour(tourXmlScene);
             // 上传切图
             this.uploadOss(sceneCode);
-            String ossUrl = configConstant.ossDomain + configConstant.ossBasePath + sceneCode+"/vtour/panos/"+sceneCode+".tiles/thumb.jpg";
+            String ossUrl = ossUtil.calculateUrl("") + configConstant.ossBasePath + sceneCode+"/vtour/panos/"+sceneCode+".tiles/thumb.jpg";
             log.info("切图预览图ossUrl: {}",ossUrl);
 
             entity.setIcon(ossUrl);

+ 75 - 0
720yun_fd_consumer/gis_consumer/src/main/resources/application-locsitSD.yml

@@ -0,0 +1,75 @@
+domain:
+    4dkk: https://192.168.0.64
+logging:
+    config: classpath:logback-spring.xml
+    fdkk:
+        level: INFO
+        maxHistory: 180
+    file:
+        path: /home/backend/4dkankan_v4/qjkankan/logs/${project.name}_log
+    level:
+        com:
+            gis: info
+filestorage:
+    active: minio
+    minio:
+        endpoint: http://192.168.0.64:13008
+        internal-endpoint: http://4dkankan-mix3d-minio:13008
+        access-key: rohVjfYyZRJH0ovNEVWg
+        access-key-secret: ffTI2PHAzDSfV6WNElOh6S2Qdtwpux0D1nssmK9g
+        bucket: qjkankan
+        bucket-custom-domain:
+            qjkankan: http://${FILE_STORAGE_IP}
+        full-path: false
+server:
+    file:
+        path: /mnt/720yun_fd_manage_data/
+spring:
+    datasource:
+        driver-class-name: com.mysql.cj.jdbc.Driver
+        druid:
+            initial-size: 5
+            max-active: 20
+            max-evictable-idle-time-millis: 90000
+            max-wait: 60000
+            min-evictable-idle-time-millis: 30000
+            min-idle: 10
+            password: 4dkk2024cuikuan%
+            stat-view-servlet:
+                enabled: true
+            test-on-borrow: false
+            test-on-return: false
+            test-while-idle: true
+            time-between-eviction-runs-millis: 60000
+            url: jdbc:mysql://192.168.0.64:13001/720yun_fd_manage?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
+            username: root
+            validation-query: SELECT 1 FROM DUAL
+            web-stat-filter:
+                enabled: true
+        type: com.alibaba.druid.pool.DruidDataSource
+    rabbitmq:
+        host: 192.168.0.64
+        port: 13006
+        username: root
+        password: JHroot2024
+        virtual-host: 4dkankan
+        connection-timeout: 0
+        listener:
+            simple:
+                prefetch: 1
+                max-concurrency: 2
+                acknowledge-mode: manual #开启消费者手动确认
+        #开启消息投递确认机制
+        publisher-confirm-type: correlated
+tlog:
+    enable-invoke-time-print: true
+config:
+    bashPath: ${project.name}/
+queue:
+    scene-queue: queue-pano-scene
+    do-slice-queue: queue-do-slice
+    relics-init-queue: relics-init-queue
+    relics-update-name-queue: relics-update-name-queue
+    pano-migrate-scene-queue: pano-migrate-scene-queue
+    pano-paystatus-scene-queue: pano-paystatus-scene-queue
+    scene-queue-work: queue-pano-scene-work

+ 59 - 0
720yun_fd_consumer/gis_consumer/src/main/resources/application-proSD.yml

@@ -0,0 +1,59 @@
+logging:
+    config: classpath:logback-spring.xml
+    fdkk:
+        level: INFO
+        maxHistory: 180
+    level:
+        com:
+            gis: info
+    path: /root/data/${project.name}_log
+filestorage:
+    active: minio
+    minio:
+        endpoint: http://${FILE_STORAGE_IP}:9001
+        internal-endpoint: http://${FILE_STORAGE_IP}:9001
+        access-key: FYxjWFQzycMhdxUXDVYU
+        access-key-secret: TRQJGvWk4SSZXFg1BDQ3jFcTMeXKAb0i4W59dxYZ
+        bucket: laser-data
+        bucket-custom-domain:
+            laser-data: http://${FILE_STORAGE_IP}
+        full-path: false
+server:
+    file:
+        path: /mnt/720yun_fd_manage_data/
+spring:
+    datasource:
+        driver-class-name: com.mysql.cj.jdbc.Driver
+        druid:
+            initial-size: 5
+            max-active: 20
+            max-evictable-idle-time-millis: 90000
+            max-wait: 60000
+            min-evictable-idle-time-millis: 30000
+            min-idle: 10
+            password: JK20220120%JIK
+            stat-view-servlet:
+                enabled: true
+            test-on-borrow: false
+            test-on-return: false
+            test-while-idle: true
+            time-between-eviction-runs-millis: 60000
+            url: jdbc:mysql://127.0.0.1:3306/720yun_fd_manage?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false
+            username: root
+            validation-query: SELECT 1 FROM DUAL
+            web-stat-filter:
+                enabled: true
+        type: com.alibaba.druid.pool.DruidDataSource
+    rabbitmq:
+        address: 127.0.0.1:5672
+        connection-timeout: 15000
+        password: 123456
+        publisher-confirms: true
+        publisher-returns: true
+        template:
+            mandatory: true
+        username: admin
+        virtual-host: /
+tlog:
+    enable-invoke-time-print: true
+    pano-migrate-scene-queue: pano-migrate-scene-queue

+ 77 - 0
720yun_fd_consumer/gis_consumer/src/main/resources/application-sitSD.yml

@@ -0,0 +1,77 @@
+domain:
+    4dkk: ${FILE_STORAGE_IP}
+logging:
+    config: classpath:logback-spring.xml
+    fdkk:
+        level: INFO
+        maxHistory: 180
+    file:
+        path: /home/backend/4dkankan_v4/qjkankan/logs/${project.name}_log
+    level:
+        com:
+            gis: info
+filestorage:
+    active: minio
+    minio:
+        endpoint: http://4dkankan-mix3d-minio:9000
+        internal-endpoint: http://4dkankan-mix3d-minio:9000
+        access-key: rohVjfYyZRJH0ovNEVWg
+        access-key-secret: ffTI2PHAzDSfV6WNElOh6S2Qdtwpux0D1nssmK9g
+        bucket: qjkankan
+        bucket-custom-domain:
+            qjkankan: http://${FILE_STORAGE_IP}
+        full-path: false
+server:
+    port: 8002
+    file:
+        path: /mnt/720yun_fd_manage_data/
+spring:
+    datasource:
+        driver-class-name: com.mysql.cj.jdbc.Driver
+        druid:
+            initial-size: 5
+            max-active: 20
+            max-evictable-idle-time-millis: 90000
+            max-wait: 60000
+            min-evictable-idle-time-millis: 30000
+            min-idle: 10
+            password: 4dkk2024cuikuan%
+            stat-view-servlet:
+                enabled: true
+            test-on-borrow: false
+            test-on-return: false
+            test-while-idle: true
+            time-between-eviction-runs-millis: 60000
+            url: jdbc:mysql://4dkankan-mix3d-mysql:3306/720yun_fd_manage?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
+            username: root
+            validation-query: SELECT 1 FROM DUAL
+            web-stat-filter:
+                enabled: true
+        type: com.alibaba.druid.pool.DruidDataSource
+    rabbitmq:
+        host: 4dkankan-mix3d-rabbitmq
+        port: 5672
+        username: root
+        password: JHroot2024
+        virtual-host: 4dkankan
+        connection-timeout: 0
+        listener:
+            simple:
+                prefetch: 1
+                max-concurrency: 2
+                acknowledge-mode: manual #开启消费者手动确认
+        #开启消息投递确认机制
+        publisher-confirm-type: correlated
+tlog:
+    enable-invoke-time-print: true
+    pano-migrate-scene-queue: pano-migrate-scene-queue
+config:
+    bashPath: 720yun_fd_manage/
+queue:
+    scene-queue: queue-pano-scene
+    do-slice-queue: queue-do-slice
+    relics-init-queue: relics-init-queue
+    relics-update-name-queue: relics-update-name-queue
+    pano-migrate-scene-queue: pano-migrate-scene-queue
+    pano-paystatus-scene-queue: pano-paystatus-scene-queue
+    scene-queue-work: queue-pano-scene-work

+ 123 - 116
720yun_fd_consumer/gis_consumer/src/main/resources/logback-spring.xml

@@ -1,156 +1,163 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<configuration scan="true" scanPeriod="60 seconds" debug="false">
-    <property name="LOG_MAX_HISTORY" value="180"/>
-    <springProperty scope="context" name="LOG_PATH" source="logging.path"/>
+<configuration>
+    <springProperty scope="context" name="LOG_MAX_HISTORY" source="logging.fdkk.maxHistory"/>
+    <!-- 日志根目录-->
+    <springProperty scope="context" name="LOG_HOME" source="logging.file.path"/>
 
-    <!-- 控制台输出 -->
-    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+    <!-- 日志级别 -->
+    <springProperty scope="context" name="LOG_LEVEL" source="logging.fdkk.level" defaultValue="DEBUG"/>
+
+    <!--  标识这个"STDOUT" 将会添加到这个logger -->
+    <springProperty scope="context" name="STDOUT" source="log.stdout" defaultValue="STDOUT"/>
+
+    <!-- 日志文件名称-->
+    <property name="LOG_PREFIX" value="720yun"/>
+
+    <!-- 日志文件编码-->
+    <property name="LOG_CHARSET" value="UTF-8"/>
+
+    <!-- 日志文件路径+日期-->
+    <property name="LOG_DIR" value="${LOG_HOME}/%d{yyyyMMdd}"/>
+
+    <!--对日志进行格式化-->
+
+    <!--文件大小,默认10MB-->
+    <property name="MAX_FILE_SIZE" value="50MB"/>
+
+    <!-- 配置日志的滚动时间 ,表示只保留最近 10 天的日志-->
+    <property name="MAX_HISTORY" value="10"/>
+
+    <!--输出到控制台-->
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder class="com.yomahub.tlog.core.enhance.logback.AspectLogbackEncoder">
             <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
-            <pattern>${LOG_PATH}/%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %X{TRACE_ID} %-5level %logger{50} - %msg%n</pattern>
-            <!--<charset>utf-8</charset>-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>utf-8</charset>
         </encoder>
     </appender>
-    <!-- 按照每天生成日志文件:主项目日志 -->
-    <appender name="file.all" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 追加日志到原文件结尾 -->
-        <Prudent>true</Prudent>
+    <!--输出到文件-->
+    <appender name="0" class="ch.qos.logback.core.rolling.RollingFileAppender">
+    </appender>
+
+    <!-- 定义 ALL 日志的输出方式:-->
+    <appender name="FILE_ALL" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!--日志文件路径,日志文件名称-->
+        <File>${LOG_HOME}/${LOG_PREFIX}_all.log</File>
+        <!-- 设置滚动策略,当天的日志大小超过 ${MAX_FILE_SIZE} 文件大小时候,新的内容写入新的文件, 默认10MB -->
         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <!--日志文件输出的文件名 -->
-            <FileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}.%i.log</FileNamePattern>
+            <!--日志文件路径,新的 ALL 日志文件名称,“ i ” 是个变量 -->
+            <FileNamePattern>${LOG_DIR}/${LOG_PREFIX}_all%i.log</FileNamePattern>
+
+            <!-- 配置日志的滚动时间 ,表示只保留最近 10 天的日志-->
             <MaxHistory>${LOG_MAX_HISTORY}</MaxHistory>
+            <cleanHistoryOnStart>true</cleanHistoryOnStart>
+            <!--当天的日志大小超过 ${MAX_FILE_SIZE} 文件大小时候,新的内容写入新的文件, 默认10MB-->
             <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <!-- 除按日志记录之外,还配置了日志文件不能超过10M(默认),若超过10M,日志文件会以索引0开始, -->
-                <maxFileSize>10MB</maxFileSize>
+                <maxFileSize>${MAX_FILE_SIZE}</maxFileSize>
             </timeBasedFileNamingAndTriggeringPolicy>
         </rollingPolicy>
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+        <encoder class="com.yomahub.tlog.core.enhance.logback.AspectLogbackEncoder">
             <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %X{TRACE_ID} %-5level %logger{500} - %msg%n</pattern>
-            <!--<charset>utf-8</charset>-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n </pattern>
+            <charset>utf-8</charset>
         </encoder>
     </appender>
 
-    <!--info日志统一输出到这里-->
-    <appender name="file.info" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <Prudent>true</Prudent>
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <!--日志文件输出的文件名 每小时生成日志文件 -->
-            <FileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}/info/console-info.%d{yyyy-MM-dd-HH}.%i.log</FileNamePattern>
-            <MaxHistory>${LOG_MAX_HISTORY}</MaxHistory>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <!-- 除按日志记录之外,还配置了日志文件不能超过10M(默认),若超过10M,日志文件会以索引0开始, -->
-                <maxFileSize>10MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-        </rollingPolicy>
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %method 方法名  %L 行数 %msg:日志消息,%n是换行符-->
-            <pattern> %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %X{TRACE_ID} %-5level %logger{56}.%method:%L - %msg%n</pattern>
-            <!--<charset>utf-8</charset>-->
-        </encoder>
-        <!-- 此日志文件只记录info级别的 -->
+    <!-- 定义 INFO 日志的输出方式:-->
+    <appender name="FILE_INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 下面为配置只输出error级别的日志 -->
         <filter class="ch.qos.logback.classic.filter.LevelFilter">
             <level>INFO</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
+            <OnMismatch>DENY</OnMismatch>
+            <OnMatch>ACCEPT</OnMatch>
         </filter>
-    </appender>
-
-    <!--错误日志统一输出到这里-->
-    <appender name="file.error" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <Prudent>true</Prudent>
+        <append>true</append>
+        <!--日志文件路径,日志文件名称-->
+        <File>${LOG_HOME}/${LOG_PREFIX}_info.log</File>
+        <!-- 设置滚动策略,当天的日志大小超过 ${MAX_FILE_SIZE} 文件大小时候,新的内容写入新的文件, 默认10MB -->
         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <!--日志文件输出的文件名-->
-            <FileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}/error/console-error.%d{yyyy-MM-dd-HH}.%i.log</FileNamePattern>
-            <!--日志文件保留天数-->
+
+            <!--日志文件路径,新的 INFO 日志文件名称,“ i ” 是个变量 -->
+            <FileNamePattern>${LOG_DIR}/${LOG_PREFIX}_info%i.log</FileNamePattern>
+
+            <!-- 配置日志的滚动时间 ,表示只保留最近 10 天的日志-->
             <MaxHistory>${LOG_MAX_HISTORY}</MaxHistory>
+            <cleanHistoryOnStart>true</cleanHistoryOnStart>
+
+            <!--当天的日志大小超过 ${MAX_FILE_SIZE} 文件大小时候,新的内容写入新的文件, 默认10MB-->
             <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <!-- 除按日志记录之外,还配置了日志文件不能超过10M(默认),若超过10M,日志文件会以索引0开始, -->
-                <maxFileSize>10MB</maxFileSize>
+                <maxFileSize>${MAX_FILE_SIZE}</maxFileSize>
             </timeBasedFileNamingAndTriggeringPolicy>
         </rollingPolicy>
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %method 方法名  %L 行数 %msg:日志消息,%n是换行符-->
-            <pattern> %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %X{TRACE_ID} %-5level %logger{56}.%method:%L - %msg%n</pattern>
-            <!--<charset>utf-8</charset>-->
+
+        <!-- 输出的日志内容格式化-->
+        <encoder class="com.yomahub.tlog.core.enhance.logback.AspectLogbackEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n </pattern>
+            <charset>utf-8</charset>
         </encoder>
-        <!-- 此日志文件只记录error级别的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>ERROR</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
     </appender>
 
-    <!--warn日志统一输出到这里-->
-    <appender name="file.warn" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <Prudent>true</Prudent>
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <!--日志文件输出的文件名 按小时生成日志-->
-            <FileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}/warn/console-warn.%d{yyyy-MM-dd-HH}.%i.log</FileNamePattern>
-            <!--日志文件保留天数-->
-            <MaxHistory>${LOG_MAX_HISTORY}</MaxHistory>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <!-- 除按日志记录之外,还配置了日志文件不能超过10M(默认),若超过10M,日志文件会以索引0开始, -->
-                <maxFileSize>10MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-        </rollingPolicy>
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %method 方法名  %L 行数 %msg:日志消息,%n是换行符-->
-            <pattern> %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %X{TRACE_ID} %-5level %logger{56}.%method:%L - %msg%n</pattern>
-            <!--<charset>utf-8</charset>-->
-        </encoder>
-        <!-- 此日志文件只记录warn级别的 -->
+    <!-- 定义 ERROR 日志的输出方式:-->
+    <appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 下面为配置只输出error级别的日志 -->
         <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>WARN</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
+            <level>ERROR</level>
+            <OnMismatch>DENY</OnMismatch>
+            <OnMatch>ACCEPT</OnMatch>
         </filter>
-    </appender>
+        <!--日志文件路径,日志文件名称-->
+        <File>${LOG_HOME}/${LOG_PREFIX}_err.log</File>
 
-    <!--debug级别日志统一输出到这里-->
-    <appender name="file.debug" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <Prudent>true</Prudent>
+        <!-- 设置滚动策略,当天的日志大小超过 ${MAX_FILE_SIZE} 文件大小时候,新的内容写入新的文件, 默认10MB -->
         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <!--日志文件输出的文件名 按小时生成日志-->
-            <FileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}/debug/console-debug.%d{yyyy-MM-dd-HH}.%i.log</FileNamePattern>
-            <!--日志文件保留天数-->
+
+            <!--日志文件路径,新的 ERR 日志文件名称,“ i ” 是个变量 -->
+            <FileNamePattern>${LOG_DIR}/${LOG_PREFIX}_err%i.log</FileNamePattern>
+
+            <!-- 配置日志的滚动时间 ,表示只保留最近 10 天的日志-->
             <MaxHistory>${LOG_MAX_HISTORY}</MaxHistory>
-            <!-- 除按日志记录之外,还配置了日志文件不能超过5M,若超过5M,日志文件会以索引0开始,命名日志文件,例如console-debug.2018-08-24-09.1.log -->
+            <cleanHistoryOnStart>true</cleanHistoryOnStart>
+
+            <!--当天的日志大小超过 ${MAX_FILE_SIZE} 文件大小时候,新的内容写入新的文件, 默认10MB-->
             <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>10MB</maxFileSize>
+                <maxFileSize>${MAX_FILE_SIZE}</maxFileSize>
             </timeBasedFileNamingAndTriggeringPolicy>
         </rollingPolicy>
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %method 方法名  %L 行数 %msg:日志消息,%n是换行符-->
-            <pattern> %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %X{TRACE_ID} %-5level %logger{56}.%method:%L - %msg%n</pattern>
-            <!--<charset>utf-8</charset>-->
+
+        <!-- 输出的日志内容格式化-->
+        <encoder class="com.yomahub.tlog.core.enhance.logback.AspectLogbackEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>utf-8</charset>
         </encoder>
-        <!-- 此日志文件只记录debug级别的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>DEBUG</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY </onMismatch>
-        </filter>
     </appender>
 
-    <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
-    <appender name="file.async" class="ch.qos.logback.classic.AsyncAppender">
-        <discardingThreshold>0</discardingThreshold>
-        <queueSize>256</queueSize>
-        <includeCallerData>true</includeCallerData>
-        <appender-ref ref="file.all" />
-    </appender>
+    <logger name="org.springframework" level="ERROR"/>
+    <logger name="org.apache.commons" level="ERROR"/>
+    <logger name="com.alibaba.dubbo.monitor" level="ERROR"/>
+    <logger name="com.alibaba.dubbo.remoting" level="ERROR"/>
+    <logger name="com.apache.ibatis" level="${LOG_LEVEL}"/>
+    <logger name="java.sql.Connection" level="${LOG_LEVEL}"/>
+    <logger name="java.sql.Statement" level="${LOG_LEVEL}"/>
+    <logger name="java.sql.PreparedStatement" level="${LOG_LEVEL}"/>
+    <logger name="io.lettuce.core.protocol" level="ERROR"/>
+    <logger name="io.lettuce.core" level="ERROR"/>
 
-    <!--  日志输出级别 -->
-    <!-- TRACE\DEBUG\INFO\WARN\ERROR\FATAL\OFF -->
+    <!-- ${LOG_ROOT_LEVEL} 日志级别 -->
     <root level="INFO">
-        <appender-ref ref="console" />
-        <appender-ref ref="file.async"/>
-        <appender-ref ref="file.error" />
-        <appender-ref ref="file.info" />
-        <appender-ref ref="file.debug" />
-        <appender-ref ref="file.warn" />
+
+        <!-- 标识这个"${STDOUT}"将会添加到这个logger -->
+        <appender-ref ref="STDOUT"/>
+
+        <!-- FILE_ALL 日志输出添加到 logger -->
+        <appender-ref ref="FILE_ALL"/>
+
+        <!-- FILE_INFO 日志输出添加到 logger -->
+        <appender-ref ref="FILE_INFO"/>
+
+        <!-- FILE_ERROR 日志输出添加到 logger -->
+        <appender-ref ref="FILE_ERROR"/>
     </root>
 
-</configuration>
+</configuration>

+ 36 - 39
720yun_fd_consumer/gis_consumer_oss/pom.xml

@@ -18,46 +18,9 @@
     <dependencies>
 
 
-        <!--AliYun sdk-->
-        <dependency>
-            <groupId>com.aliyun</groupId>
-            <artifactId>aliyun-java-sdk-core</artifactId>
-            <version>4.0.3</version>
-        </dependency>
-        <dependency>
-            <groupId>com.aliyun</groupId>
-            <artifactId>aliyun-java-sdk-dysmsapi</artifactId>
-            <version>1.1.0</version>
-        </dependency>
-        <dependency>
-            <groupId>com.aliyun.oss</groupId>
-            <artifactId>aliyun-sdk-oss</artifactId>
-            <version>2.5.0</version>
-        </dependency>
-
 
-        <!--七牛云oss info-->
-        <dependency>
-            <groupId>com.qiniu</groupId>
-            <artifactId>happy-dns-java</artifactId>
-            <version>0.1.6</version>
-            <scope>compile</scope>
-        </dependency>
 
 
-        <dependency>
-            <groupId>com.qiniu</groupId>
-            <artifactId>qiniu-java-sdk</artifactId>
-            <version>7.10.0</version>
-        </dependency>
-
-
-        <!--aws s3 -->
-        <dependency>
-            <groupId>com.amazonaws</groupId>
-            <artifactId>aws-java-sdk</artifactId>
-            <version>1.11.327</version>
-        </dependency>
 
         <dependency>
             <groupId>commons-fileupload</groupId>
@@ -198,8 +161,42 @@
             <groupId>org.iherus</groupId>
             <artifactId>qrext4j</artifactId>
         </dependency>
-
-
+        <dependency>
+            <groupId>com.amazonaws</groupId>
+            <artifactId>aws-java-sdk-s3</artifactId>
+            <version>${aws.version}</version>
+        </dependency>
+        <!-- https://mvnrepository.com/artifact/com.qcloud/cos_api -->
+        <dependency>
+            <groupId>com.qcloud</groupId>
+            <artifactId>cos_api</artifactId>
+            <exclusions>
+                <exclusion>
+                    <artifactId>okio</artifactId>
+                    <groupId>com.squareup.okio</groupId>
+                </exclusion>
+                <exclusion>
+                    <artifactId>okhttp</artifactId>
+                    <groupId>com.squareup.okhttp3</groupId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>com.aliyun.oss</groupId>
+            <artifactId>aliyun-sdk-oss</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.minio</groupId>
+            <artifactId>minio</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.jetbrains.kotlin</groupId>
+            <artifactId>kotlin-stdlib</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.yomahub</groupId>
+            <artifactId>tlog-all-spring-boot-starter</artifactId>
+        </dependency>
     </dependencies>
 
 

+ 5 - 5
720yun_fd_consumer/gis_consumer_oss/src/main/java/com/gis/oss/command/CmdConstant.java

@@ -41,9 +41,9 @@ public class CmdConstant {
      * 参数4:aws|oss|load
      * 参数5:file|folder  文件或目录
      *
-     *  sudo bash /opt/ossutil/fyun-upload.sh test-4dkankan /root/data test_2/data aws folder
+     *  bash /opt/ossutil/fyun-upload.sh test-4dkankan /root/data test_2/data aws folder
      */
-//    public final static String UPLOAD_DIR = "sudo bash /opt/ossutil/fyun-upload.sh %s %s %s %s folder";
+//    public final static String UPLOAD_DIR = "bash /opt/ossutil/fyun-upload.sh %s %s %s %s folder";
     public final static String UPLOAD_DIR = "bash /opt/ossutil/fyun-upload.sh %s %s %s %s folder";
 
     /**
@@ -51,10 +51,10 @@ public class CmdConstant {
      * opType: file or folder
      * fyunType : oss ,aws
      */
-    public static final String FYUN_UPLOAD = "sudo bash /mnt/shell/fyun/fyun-upload.sh %s %s /%s %s %s";
+    public static final String FYUN_UPLOAD = "bash /mnt/shell/fyun/fyun-upload.sh %s %s /%s %s %s";
 
-    public static final String FYUN_DOWN = "sudo bash /mnt/shell/fyun/fyun-download.sh %s /%s %s %s %s";
+    public static final String FYUN_DOWN = "bash /mnt/shell/fyun/fyun-download.sh %s /%s %s %s %s";
 
-    public static final String FYUN_DELETE = "sudo bash /mnt/shell/fyun/fyun-deled.sh %s /%s %s %s %s";
+    public static final String FYUN_DELETE = "bash /mnt/shell/fyun/fyun-deled.sh %s /%s %s %s %s";
 
 }

+ 22 - 1
720yun_fd_consumer/gis_consumer_oss/src/main/java/com/gis/oss/util/FileAndOssUtil.java

@@ -45,5 +45,26 @@ public class FileAndOssUtil {
 		log.info("开始上传文件 源路径:{},目标路径:{}, type:{}" , filePath, key);
 		OssShUtil.yunUpload(filePath,key);
 	}
-
+	/**
+	 * 通过脚本上传
+	 * @param filePath
+	 * @param key
+	 * @param bucket
+	 * @param active
+	 */
+	public void uploadBySh(String filePath,String key,String bucket,String active) {
+		log.info("开始上传文件 源路径:{},目标路径:{}, type:{}" , filePath, key);
+		OssShUtil.yunUpload(filePath,key,bucket,active);
+	}
+	/**
+	 * 通过脚本上传
+	 * @param filePath
+	 * @param key
+	 * @param bucket
+	 * @param active
+	 */
+	public void downloadBySh(String key,String filePath,String bucket,String active) {
+		log.info("开始上传文件 源路径:{},目标路径:{}, type:{}" , filePath, key);
+		OssShUtil.yunDownloadOther(key,filePath,bucket,active);
+	}
 }

+ 6 - 1
720yun_fd_consumer/gis_consumer_oss/src/main/java/com/gis/oss/util/OssShUtil.java

@@ -54,8 +54,13 @@ public class OssShUtil {
         String cmd = String.format(CmdConstant.FYUN_UPLOAD, bean.getBucket(),srcPath,destPath,bean.getActive(),opType);
         callLineSh(cmd);
     }
+    public static void yunUpload(String srcPath,String destPath,String bucket,String active){
+        String opType = srcPath.contains(".")? "file":"folder" ;
+        FileStorageTemplate bean = SpringUtil.getBean(FileStorageTemplate.class);
+        String cmd = String.format(CmdConstant.FYUN_UPLOAD,bucket,srcPath,destPath,active,opType);
+        callLineSh(cmd);
+    }
     public static void yunDownload(String srcPath,String destPath){
-
         String opType = srcPath.contains(".")? "file":"folder" ;
         FileStorageTemplate bean = SpringUtil.getBean(FileStorageTemplate.class);
         if("/".equals(srcPath.substring(0,1))){

+ 0 - 138
720yun_fd_consumer/gis_consumer_oss/src/main/java/com/gis/oss/util/QiNiuOssUtil.java

@@ -1,138 +0,0 @@
-package com.gis.oss.util;
-
-import com.qiniu.common.QiniuException;
-import com.qiniu.http.Response;
-import com.qiniu.storage.BucketManager;
-import com.qiniu.storage.Configuration;
-import com.qiniu.storage.Region;
-import com.qiniu.storage.UploadManager;
-import com.qiniu.storage.model.FileInfo;
-import com.qiniu.util.Auth;
-import lombok.extern.slf4j.Slf4j;
-import org.junit.Test;
-
-import java.util.Map;
-
-/**
- * 七牛云oss上传工具
- */
-@Slf4j
-public class QiNiuOssUtil {
-
-    private static String ACCESS_KEY = "dlPPwgZky_F-iP8CbSbJpiAtAcqw3BYwb9rdHMrS";
-    private static String SECRET_KEY = "YEtkLKDsImXB-8m1CT1zV_YwCwwGvrUvo2ktj9KZ";
-
-    // 大场景 super 华南区域
-    private static String bucketName = "super";
-
-
-    //构造一个带指定 Region 对象的配置类, Region.region2(): 华南区域
-//    private static Configuration cfg = new Configuration(Region.region2());
-//    private static Configuration cfg = new Configuration(Zone.autoZone());
-    private static Configuration cfg = new Configuration(Region.huanan());
-
-    // 华北
-//    private static String bucketName = "model3d";
-//    private static Configuration cfg = new Configuration(Zone.autoZone());
-
-    //...其他参数参考类注释
-    private static UploadManager uploadManager = new UploadManager(cfg);
-
-    private static Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
-//    private static  String upToken = auth.uploadToken(bucketName);
-
-
-
-    /**
-     * localFilePath: 本地文件路径
-     * ossFilePath: ossw文件存放路径, 注意前面不要用"/" ,data/aa.jpg
-     */
-    public static void upload(String localFilePath, String ossFilePath) throws QiniuException {
-        // 覆盖需要把ossKey放到uploadToken里
-        String upToken = auth.uploadToken(bucketName, ossFilePath);
-        Response response = uploadManager.put(localFilePath, ossFilePath, upToken);
-        if (response.statusCode!=200){
-            String errorMsg = response.toString();
-            log.error("七牛云响应值:{}", errorMsg);
-//            BaseRuntimeException.isTrue(true, null, "七牛云返回上传失败: " + errorMsg);
-        }
-    }
-
-
-    public static void main(String[] args) throws QiniuException {
-        String localFilePath = "F:\\test\\ngin\\11.txt";
-        String ossFilePath = "data/owen/11.txt";
-        upload(localFilePath, ossFilePath);
-        System.out.println("11111");
-
-//        getInfo(ossFilePath);
-    }
-
-
-    /**
-     * 批量上传
-     * key: localFilePath
-     * value: ossFilePath
-     */
-    public static void uploads(Map<String, String> param) {
-        log.info("开始批量上传到七牛云");
-        String upToken = auth.uploadToken(bucketName);
-        param.forEach((key, val)->{
-            try {
-                uploadManager.put(key, val, upToken);
-            } catch (QiniuException e) {
-                e.printStackTrace();
-            }
-        });
-        log.info("完成批量上传到七牛云");
-    }
-
-
-
-    /**
-     * by owen 2022-5-13
-     * @param key :文件路径
-     * 第一级目录不能带/ 例如: owen/aa.jpg
-     * 不支持删除目录, 删除目录使用脚本
-     */
-    public static void delete(String key){
-        BucketManager bucketManager = new BucketManager(auth, cfg);
-        try {
-            bucketManager.delete(bucketName, key);
-        } catch (QiniuException ex) {
-            //如果遇到异常,说明删除失败
-            log.error(ex.response.toString());
-        }
-    }
-
-
-
-
-    @Test
-    public void testDelete(){
-        delete("owen/a");
-    }
-
-
-    /**
-     * 获取文件信息
-     * @param key
-     */
-    public static void getInfo(String key){
-
-        BucketManager bucketManager = new BucketManager(auth, cfg);
-        try {
-            FileInfo fileInfo = bucketManager.stat(bucketName, key);
-            System.out.println(fileInfo.hash);
-            System.out.println(fileInfo.fsize);
-            System.out.println(fileInfo.mimeType);
-            System.out.println(fileInfo.putTime);
-        } catch (QiniuException ex) {
-            System.err.println(ex.response.toString());
-        }
-    }
-
-
-
-
-}

Разница между файлами не показана из-за своего большого размера
+ 0 - 1244
720yun_fd_consumer/gis_consumer_oss/src/main/java/com/gis/oss/util/UploadToOssUtil.java


+ 51 - 22
720yun_fd_consumer/pom.xml

@@ -36,15 +36,20 @@
         <shiro.version>1.3.2</shiro.version>
         <jwt.version>3.2.0</jwt.version>
         <jjwt.version>0.6.0</jjwt.version>
-        <aliyun.core.version>4.0.3</aliyun.core.version>
-        <aliyun.dysmsapi.version>1.1.0</aliyun.dysmsapi.version>
-        <aliyun.oss.version>2.5.0</aliyun.oss.version>
         <tk.mybatis.version>2.0.2</tk.mybatis.version>
         <tk.mapper.version>4.0.3</tk.mapper.version>
         <pagehelper.version>1.2.5</pagehelper.version>
         <knife4j.version>2.0.2</knife4j.version>
         <junit.version>4.12</junit.version>
         <qrext4j.version>1.3.1</qrext4j.version>
+        <tlog-all-spring-boot-starter.version>1.5.0</tlog-all-spring-boot-starter.version>
+
+
+
+        <minio.version>8.2.2</minio.version>
+        <aws.version>1.12.481</aws.version>
+        <cos.version>5.6.166</cos.version>
+        <aliyun-sdk-oss.version>3.15.1</aliyun-sdk-oss.version>
 
     </properties>
 
@@ -177,25 +182,6 @@
                 <version>${jjwt.version}</version>
             </dependency>
 
-            <!--aliyun sdk-->
-            <dependency>
-                <groupId>com.aliyun</groupId>
-                <artifactId>aliyun-java-sdk-core</artifactId>
-                <version>${aliyun.core.version}</version>
-            </dependency>
-
-            <dependency>
-                <groupId>com.aliyun</groupId>
-                <artifactId>aliyun-java-sdk-dysmsapi</artifactId>
-                <version>${aliyun.dysmsapi.version}</version>
-            </dependency>
-
-            <!--aliyun oss-->
-            <dependency>
-                <groupId>com.aliyun.oss</groupId>
-                <artifactId>aliyun-sdk-oss</artifactId>
-                <version>${aliyun.oss.version}</version>
-            </dependency>
 
             <!--tk.mybatis 依赖-->
             <dependency>
@@ -230,7 +216,50 @@
                 <artifactId>qrext4j</artifactId>
                 <version>${qrext4j.version}</version>
             </dependency>
+
+            <dependency>
+                <groupId>com.amazonaws</groupId>
+                <artifactId>aws-java-sdk-s3</artifactId>
+                <version>${aws.version}</version>
+            </dependency>
+            <!-- https://mvnrepository.com/artifact/com.qcloud/cos_api -->
+            <dependency>
+                <groupId>com.qcloud</groupId>
+                <artifactId>cos_api</artifactId>
+                <version>${cos.version}</version>
+                <exclusions>
+                    <exclusion>
+                        <artifactId>okio</artifactId>
+                        <groupId>com.squareup.okio</groupId>
+                    </exclusion>
+                    <exclusion>
+                        <artifactId>okhttp</artifactId>
+                        <groupId>com.squareup.okhttp3</groupId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
+            <dependency>
+                <groupId>com.aliyun.oss</groupId>
+                <artifactId>aliyun-sdk-oss</artifactId>
+                <version>${aliyun-sdk-oss.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>io.minio</groupId>
+                <artifactId>minio</artifactId>
+                <version>${minio.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.jetbrains.kotlin</groupId>
+                <artifactId>kotlin-stdlib</artifactId>
+                <version>1.3.70</version>
+            </dependency>
+            <dependency>
+                <groupId>com.yomahub</groupId>
+                <artifactId>tlog-all-spring-boot-starter</artifactId>
+                <version>${tlog-all-spring-boot-starter.version}</version>
+            </dependency>
         </dependencies>
+
     </dependencyManagement>
 
     <!--<build>-->

+ 105 - 0
720yun_fd_manage/gis_application/src/main/resources/application-proSD.yml

@@ -0,0 +1,105 @@
+domain:
+    4dkk: https://www.4dkankan.com
+knife4j:
+    basic:
+        enable: true
+        password: owen
+        username: owen
+logging:
+    config: classpath:logback-spring.xml
+    fdkk:
+        level: INFO
+        maxHistory: 180
+    file:
+        path: /root/log/${project.name}_log
+    level:
+        com:
+            gis: debug
+oss:
+    bucket: 4dkankan
+    domain: https://4dkk.4dage.com/
+    file:
+        path: ${project.name}/
+    key: LTAI5tSkKQbEmxxuTbPtHqK6
+    point: http://oss-cn-shenzhen-internal.aliyuncs.com
+    secrecy: JI21tOnZbJuqt5NDRcQq2qvAUA4KTf
+    type: oss
+server:
+    domain: ''
+    file:
+        path: /mnt/${project.name}_data/
+spring:
+    datasource:
+        driver-class-name: com.mysql.cj.jdbc.Driver
+        druid:
+            initial-size: 5
+            max-active: 20
+            max-evictable-idle-time-millis: 90000
+            max-wait: 60000
+            min-evictable-idle-time-millis: 30000
+            min-idle: 10
+            password: JK20220120&JIK
+            stat-view-servlet:
+                enabled: true
+            test-on-borrow: false
+            test-on-return: false
+            test-while-idle: true
+            time-between-eviction-runs-millis: 60000
+            url: jdbc:mysql://172.18.157.42:13306/720yun_fd_manage?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
+            username: laser
+            validation-query: SELECT 1 FROM DUAL
+            web-stat-filter:
+                enabled: true
+        type: com.alibaba.druid.pool.DruidDataSource
+    rabbitmq:
+        host: 172.18.157.42
+        port: 5672
+        username: guest
+        password: guest
+        virtual-host: 4dkankan
+        connection-timeout: 0
+        listener:
+            simple:
+                prefetch: 5
+                max-concurrency: 10
+                acknowledge-mode: manual #开启消费者手动确认
+            direct:
+                acknowledge-mode: manual #开启消费者手动确认
+        #开启消息投递确认机制
+        publisher-confirm-type: correlated
+    redis:
+        database: 0
+        host: r-wz9owsphxqwi4ztqlf.redis.rds.aliyuncs.com
+        jedis:
+            pool:
+                max-active: 8
+                max-idle: 8
+                max-wait: -1ms
+                min-idle: 0
+        password: 3oo19bgh0cae2406&
+        port: 6379
+        timeout: 3000ms
+    servlet:
+        multipart:
+            location: /mnt
+tlog:
+    enable-invoke-time-print: true
+forest:
+    backend: okhttp3 # 后端HTTP框架(默认为 okhttp3)
+    max-connections: 1000 # 连接池最大连接数(默认为 500)
+    max-route-connections: 500 # 每个路由的最大连接数(默认为 500)
+    timeout: 50000 # 请求超时时间,单位为毫秒(默认为 3000)
+    connect-timeout: 20000 # 连接超时时间,单位为毫秒(默认为 timeout)
+    read-timeout: 50000 # 数据读取超时时间,单位为毫秒(默认为 timeout)
+    max-retry-count: 0 # 请求失败后重试次数(默认为 0 次不重试)
+    ssl-protocol: SSLv3 # 单向验证的HTTPS的默认SSL协议(默认为 SSLv3)
+    logEnabled: true # 打开或关闭日志(默认为 true)
+    log-request: true # 打开/关闭Forest请求日志(默认为 true)
+    log-response-status: true # 打开/关闭Forest响应状态日志(默认为 true)
+    log-response-content: true # 打开/关闭Forest响应内容日志(默认为 false)
+    base-address-scheme: https
+    base-address-host: www.4dkankan.com
+queue:
+    scene-queue: queue-pano-scene
+    do-slice-queue: queue-do-slice
+    relics-update-name-queue: relics-update-name-queue

+ 102 - 0
720yun_fd_manage/gis_application/src/main/resources/application-sitSD.yml

@@ -0,0 +1,102 @@
+domain:
+    4dkk: ${FILE_STORAGE_IP}
+logging:
+    config: classpath:logback-spring.xml
+    fdkk:
+        level: INFO
+        maxHistory: 180
+    file:
+        path: /home/backend/4dkankan_v4/qjkankan/logs/${project.name}_log
+    level:
+        com:
+            gis: debug
+filestorage:
+    active: minio
+    minio:
+        endpoint: http://4dkankan-mix3d-minio:9000
+        internal-endpoint: http://4dkankan-mix3d-minio:9000
+        access-key: rohVjfYyZRJH0ovNEVWg
+        access-key-secret: ffTI2PHAzDSfV6WNElOh6S2Qdtwpux0D1nssmK9g
+        bucket: qjkankan
+        bucket-custom-domain:
+            qjkankan: http://${FILE_STORAGE_IP}
+        full-path: false
+server:
+    port: 8001
+    file:
+        path: /mnt/${project.name}_data/
+spring:
+    datasource:
+        driver-class-name: com.mysql.cj.jdbc.Driver
+        druid:
+            initial-size: 5
+            max-active: 20
+            max-evictable-idle-time-millis: 90000
+            max-wait: 60000
+            min-evictable-idle-time-millis: 30000
+            min-idle: 10
+            password: 4dkk2024cuikuan%
+            stat-view-servlet:
+                enabled: true
+            test-on-borrow: false
+            test-on-return: false
+            test-while-idle: true
+            time-between-eviction-runs-millis: 60000
+            url: jdbc:mysql://4dkankan-mix3d-mysql:3306/${project.name}?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
+            username: root
+            validation-query: SELECT 1 FROM DUAL
+            web-stat-filter:
+                enabled: true
+        type: com.alibaba.druid.pool.DruidDataSource
+    rabbitmq:
+        host: 4dkankan-mix3d-rabbitmq
+        port: 5672
+        username: root
+        password: JHroot2024
+        virtual-host: 4dkankan
+        connection-timeout: 0
+        listener:
+            simple:
+                prefetch: 1
+                max-concurrency: 2
+                acknowledge-mode: manual #开启消费者手动确认
+        #开启消息投递确认机制
+        publisher-confirm-type: correlated
+    redis:
+        database: 0
+        host: 4dkankan-mix3d-redis
+        jedis:
+            pool:
+                max-active: 8
+                max-idle: 8
+                max-wait: -1ms
+                min-idle: 0
+        password: JK20230411dage
+        port: 6379
+        timeout: 3000ms
+    servlet:
+        multipart:
+            location: /mnt
+tlog:
+    enable-invoke-time-print: true
+forest:
+    backend: okhttp3 # 后端HTTP框架(默认为 okhttp3)
+    max-connections: 1000 # 连接池最大连接数(默认为 500)
+    max-route-connections: 500 # 每个路由的最大连接数(默认为 500)
+    timeout: 50000 # 请求超时时间,单位为毫秒(默认为 3000)
+    connect-timeout: 20000 # 连接超时时间,单位为毫秒(默认为 timeout)
+    read-timeout: 50000 # 数据读取超时时间,单位为毫秒(默认为 timeout)
+    max-retry-count: 0 # 请求失败后重试次数(默认为 0 次不重试)
+    ssl-protocol: SSLv3 # 单向验证的HTTPS的默认SSL协议(默认为 SSLv3)
+    logEnabled: true # 打开或关闭日志(默认为 true)
+    log-request: true # 打开/关闭Forest请求日志(默认为 true)
+    log-response-status: true # 打开/关闭Forest响应状态日志(默认为 true)
+    log-response-content: true # 打开/关闭Forest响应内容日志(默认为 false)
+    base-address-scheme: http
+    base-address-host: 192.168.0.64:13000
+queue:
+    scene-queue: queue-pano-scene
+    do-slice-queue: queue-do-slice
+    relics-update-name-queue: relics-update-name-queue
+config:
+    bashPath: ${project.name}/

+ 2 - 2
720yun_fd_manage/gis_application/src/main/resources/application.yml

@@ -34,5 +34,5 @@ spring:
 swagger:
   description: ${swagger.title}
   package: com.gis.web.controller
-  title: 全景看看-${spring.profiles.active}
-  version: 1.3.0
+  title: 全锟斤拷锟斤拷锟斤拷-${spring.profiles.active}
+  version: 1.3.0.

+ 27 - 14
720yun_fd_manage/gis_common/pom.xml

@@ -117,19 +117,6 @@
             <artifactId>jjwt</artifactId>
         </dependency>
 
-        <!--AliYun sdk-->
-        <dependency>
-            <groupId>com.aliyun</groupId>
-            <artifactId>aliyun-java-sdk-core</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.aliyun</groupId>
-            <artifactId>aliyun-java-sdk-dysmsapi</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.aliyun.oss</groupId>
-            <artifactId>aliyun-sdk-oss</artifactId>
-        </dependency>
 
 
         <!--tk.mybatis 依赖-->
@@ -185,7 +172,33 @@
             <!--<version>2.11.2</version>-->
         <!--</dependency>-->
 
-
+        <dependency>
+            <groupId>com.amazonaws</groupId>
+            <artifactId>aws-java-sdk-s3</artifactId>
+        </dependency>
+        <!-- https://mvnrepository.com/artifact/com.qcloud/cos_api -->
+        <dependency>
+            <groupId>com.qcloud</groupId>
+            <artifactId>cos_api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.aliyun.oss</groupId>
+            <artifactId>aliyun-sdk-oss</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.minio</groupId>
+            <artifactId>minio</artifactId>
+            <exclusions>
+                <exclusion>
+                    <artifactId>okio</artifactId>
+                    <groupId>com.squareup.okio</groupId>
+                </exclusion>
+                <exclusion>
+                    <artifactId>okhttp</artifactId>
+                    <groupId>com.squareup.okhttp3</groupId>
+                </exclusion>
+            </exclusions>
+        </dependency>
     </dependencies>
 
 

+ 2 - 23
720yun_fd_manage/gis_common/src/main/java/com/gis/common/constant/ConfigConstant.java

@@ -15,10 +15,6 @@ public class ConfigConstant {
     @Value("${server.file.path}")
     public  String serverBasePath;
 
-    /** 服务器域名*/
-    @Value("${server.domain}")
-    public  String serverDomain;
-
     /**环境配置*/
     @Value("${spring.profiles.active}")
     public String active;
@@ -26,25 +22,6 @@ public class ConfigConstant {
     @Value("${project.name}")
     public String projectName;
 
-    @Value("${oss.point}")
-    public  String ossPoint;
-
-    @Value("${oss.key}")
-    public  String ossKey;
-
-    @Value("${oss.secrecy}")
-    public  String ossSecrecy;
-
-    @Value("${oss.bucket}")
-    public  String ossBucket;
-
-    @Value("${oss.file.path}")
-    public  String ossBasePath;
-
-    @Value("${oss.domain}")
-    public  String ossDomain;
-
-
     @Value("${swagger.package}")
     public  String swaggerPackage;
 
@@ -57,6 +34,8 @@ public class ConfigConstant {
     @Value("${swagger.version}")
     public  String swaggerVersion;
 
+    @Value("${config.bashPath}")
+    public  String ossBasePath;
 
     /*********************** 其他参数 ***********************/
 

+ 7 - 0
720yun_fd_manage/gis_mapper/src/main/java/com/gis/mapper/provider/WorkProvider.java

@@ -64,6 +64,13 @@ public class WorkProvider {
             if (ArrayUtil.isNotEmpty(nums)) {
                 sql.append(" and (  num in ('").append(StringUtils.join(nums, "','")).append("') )");
             }
+            List<String> snCodes = param.getSnCodes();
+            if (ArrayUtil.isNotEmpty(snCodes)){
+//            sql.append(" and (  sn_code in (").append(StringUtils.join(snCodes, ",")).append(") )");
+                sql.append(" and (  sn_code in ('").append(StringUtils.join(snCodes, "','")).append("') )");
+            }else {
+                sql.append(" and status > 0 and location IS NULL");
+            }
         }else {
             List<String> snCodes = param.getSnCodes();
             if (ArrayUtil.isNotEmpty(snCodes)){

+ 8 - 5
720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/FodderServiceImpl.java

@@ -6,6 +6,7 @@ import cn.hutool.core.io.FileTypeUtil;
 import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
+import com.fdkankan.filestorage.FileStorageTemplate;
 import com.gis.common.constant.CmdConstant;
 import com.gis.common.constant.ConfigConstant;
 import com.gis.common.constant.ErrorEnum;
@@ -37,6 +38,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 import tk.mybatis.mapper.entity.Condition;
 
+import javax.annotation.Resource;
 import javax.transaction.Transactional;
 import java.math.BigDecimal;
 import java.time.LocalDate;
@@ -60,7 +62,8 @@ public class FodderServiceImpl extends IBaseServiceImpl<FodderEntity, Long> impl
 
     @Autowired
     ConfigConstant configConstant;
-
+    @Resource
+    private FileStorageTemplate ossUtil;
     @Autowired
     FileUtils fileUtils;
 
@@ -170,11 +173,11 @@ public class FodderServiceImpl extends IBaseServiceImpl<FodderEntity, Long> impl
 
                 // 全景图的预览图
                 ossPreviewIcon = convertAndUploadOss(
-                        savePath, configConstant.ossBasePath + sceneCode, configConstant.ossDomain, 1920, 960, "/preview.jpg");
+                        savePath, configConstant.ossBasePath + sceneCode, ossUtil.calculateUrl(""), 1920, 960, "/preview.jpg");
 
                 // 使用oss截取缩略图
                 iconPath = ossPreviewIcon;
-                ossUrl = configConstant.ossDomain + configConstant.ossBasePath + sceneCode;
+                ossUrl = ossUtil.calculateUrl("") + configConstant.ossBasePath + sceneCode;
 
 
                 entity.setSceneCode(sceneCode);
@@ -182,7 +185,7 @@ public class FodderServiceImpl extends IBaseServiceImpl<FodderEntity, Long> impl
                 entity.setStatus(1);
 
             } else {
-                ossUrl = configConstant.ossDomain + ossPath;
+                ossUrl = ossUtil.calculateUrl("") + ossPath;
 
                 if (type.equals("image")) {
                     // 2022-10-27,图片大于1MB生成缩略图, 小于1MB使用原图作为缩略图
@@ -645,7 +648,7 @@ public class FodderServiceImpl extends IBaseServiceImpl<FodderEntity, Long> impl
 
         // 缩略图
         String ossKey = configConstant.ossBasePath + "fodder/thumb/thumb_" + time + ".jpg";
-        String iconPath = configConstant.ossDomain + ossKey;
+        String iconPath = ossUtil.calculateUrl("") + ossKey;
 
         // asw 环境需要使用ffmpeg 截图视频第一帧  修改为无论什么环境都使用ffmpeg
         if (/*configConstant.active.contains("Aws")&&  */"video".equals(type)){

+ 1 - 1
720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/TestServiceImpl.java

@@ -379,7 +379,7 @@ public class TestServiceImpl implements TestService {
      * @return
      */
     private List<String> downLoadSomeData(String id) {
-        String someData = configConstant.ossDomain + configConstant.ossBasePath + id + "/someData.json";
+        String someData = ossUtil.calculateUrl("") + configConstant.ossBasePath + id + "/someData.json";
         String locSomeData = configConstant.serverBasePath + id + "/someData.json";
         try {
             HttpUtil.downloadFile(someData, locSomeData);

+ 9 - 7
720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/WorkServiceImpl.java

@@ -8,6 +8,7 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.fdkankan.filestorage.FileStorageTemplate;
 import com.gis.common.constant.*;
 import com.gis.common.exception.BaseRuntimeException;
 import com.gis.common.httpclient.FdkkClient;
@@ -92,7 +93,8 @@ public class WorkServiceImpl extends IBaseStrServiceImpl<WorkEntity, String> imp
     RabbitMqProducerUtil rabbitMqProducer;
     @Value("${queue.relics-update-name-queue}")
     String relicsUpdateNameQueue;
-
+    @Resource
+    private FileStorageTemplate ossUtil;
     @Override
     public IBaseStrMapper<WorkEntity, String> getBaseMapper() {
         return this.entityMapper;
@@ -198,7 +200,7 @@ public class WorkServiceImpl extends IBaseStrServiceImpl<WorkEntity, String> imp
 
         // 创建二维码、二维码url
         String shareUrl = configConstant.domain4dKK + "/panorama/showMobile.html?id=" + id;
-        String qrCode = qrCodeUtils.generateLogoQrCode(shareUrl, configConstant.serverBasePath, configConstant.ossBasePath, configConstant.ossDomain, id);
+        String qrCode = qrCodeUtils.generateLogoQrCode(shareUrl, configConstant.serverBasePath, configConstant.ossBasePath, ossUtil.calculateUrl(""), id);
         jsonObject.put("share", shareUrl);
         jsonObject.put("qrCode", qrCode);
 
@@ -210,7 +212,7 @@ public class WorkServiceImpl extends IBaseStrServiceImpl<WorkEntity, String> imp
         } catch (IOException e) {
             e.printStackTrace();
         }
-        String ossUrl = configConstant.ossDomain + ossKeyPath;
+        String ossUrl = ossUtil.calculateUrl("") + ossKeyPath;
         log.info("ossSomeData:{}", ossUrl);
 
         return Result.success(entity);
@@ -366,7 +368,7 @@ public class WorkServiceImpl extends IBaseStrServiceImpl<WorkEntity, String> imp
         String ossKey = configConstant.ossBasePath + sceneCode + "/hot" + rename;
         log.info("保存oss位置:{}", ossKey);
 
-        Object urlPath = configConstant.ossDomain + ossKey;
+        Object urlPath = ossUtil.calculateUrl("") + ossKey;
 
         try {
             fileAndOssUtil.upload(file.getBytes(), ossKey);
@@ -885,7 +887,7 @@ public class WorkServiceImpl extends IBaseStrServiceImpl<WorkEntity, String> imp
         DateUtils.spendTime(startTime, "logo网络下载");
         log.info("网络下载logo完成");
         String shareUrl = configConstant.domain4dKK + "/panorama/show.html?id=" + id;
-        qrCodeUtils.diyLogoQrCode(shareUrl, configConstant.serverBasePath, configConstant.ossBasePath, configConstant.ossDomain, id, logoPath);
+        qrCodeUtils.diyLogoQrCode(shareUrl, configConstant.serverBasePath, configConstant.ossBasePath, ossUtil.calculateUrl(""), id, logoPath);
         log.info("二维码更新完成");
         DateUtils.spendTime(startTime, "logo上传oss完成");
         return true;
@@ -913,7 +915,7 @@ public class WorkServiceImpl extends IBaseStrServiceImpl<WorkEntity, String> imp
 //        aliyunOssUtil.upload(saveSomeDataPath, ossKeyPath);
         fileAndOssUtil.upload(saveSomeDataPath, ossKeyPath);
         log.info("someData.json 上传完成 : {}", ossKeyPath);
-        String ossUrl = configConstant.ossDomain + ossKeyPath;
+        String ossUrl = ossUtil.calculateUrl("") + ossKeyPath;
         log.info("ossUrl: {}", ossUrl);
         DateUtils.spendTime(startTime, "someData上传oss");
 
@@ -984,7 +986,7 @@ public class WorkServiceImpl extends IBaseStrServiceImpl<WorkEntity, String> imp
         if (!checkFile) {
             return Result.failure("上传文件格式有误, 请重新上传");
         }
-        return Result.success(fileUtils.renameUploadOss(file, configConstant.serverBasePath, configConstant.ossBasePath, configConstant.ossDomain));
+        return Result.success(fileUtils.renameUploadOss(file, configConstant.serverBasePath, configConstant.ossBasePath, ossUtil.calculateUrl("")));
     }
 
     @Override

+ 2 - 2
720yun_fd_manage/gis_web/src/main/java/com/gis/web/controller/TestController.java

@@ -205,14 +205,14 @@ public class TestController extends BaseController {
     @PostMapping("uploadOss")
     @ApiOperation(value = "文件上传oss")
     public Result uploadOss(MultipartFile file){
-        return Result.success(fileUtils.renameUploadOssMap(file, configConstant.serverBasePath, configConstant.ossBasePath, configConstant.ossDomain));
+        return Result.success(fileUtils.renameUploadOssMap(file, configConstant.serverBasePath, configConstant.ossBasePath, ossUtil.calculateUrl("")));
     }
 
 
     @PostMapping("uploadOssBye")
     @ApiOperation(value = "文件上传oss-字节上传")
     public Result uploadOssBye(MultipartFile file){
-        return Result.success(fileUtils.renameUploadOssBye(file, configConstant.ossBasePath, configConstant.ossDomain));
+        return Result.success(fileUtils.renameUploadOssBye(file, configConstant.ossBasePath, ossUtil.calculateUrl("")));
     }
 
     @PostMapping("uploadOssByeByType")

+ 39 - 23
720yun_fd_manage/pom.xml

@@ -43,9 +43,7 @@
         <shiro.version>1.3.2</shiro.version>
         <jwt.version>3.2.0</jwt.version>
         <jjwt.version>0.6.0</jjwt.version>
-        <aliyun.core.version>4.0.3</aliyun.core.version>
-        <aliyun.dysmsapi.version>1.1.0</aliyun.dysmsapi.version>
-        <aliyun.oss.version>2.5.0</aliyun.oss.version>
+
         <tk.mybatis.version>2.1.5</tk.mybatis.version>
         <tk.mapper.version>4.0.3</tk.mapper.version>
         <pagehelper.version>1.2.5</pagehelper.version>
@@ -61,6 +59,13 @@
         <skipTests>true</skipTests>
 
         <qrext4j.version>1.3.1</qrext4j.version>
+
+
+        <minio.version>8.2.2</minio.version>
+        <aws.version>1.12.481</aws.version>
+        <cos.version>5.6.166</cos.version>
+        <aliyun-sdk-oss.version>3.15.1</aliyun-sdk-oss.version>
+
     </properties>
 
 
@@ -232,26 +237,6 @@
                 <version>${jjwt.version}</version>
             </dependency>
 
-            <!--aliyun sdk-->
-            <dependency>
-                <groupId>com.aliyun</groupId>
-                <artifactId>aliyun-java-sdk-core</artifactId>
-                <version>${aliyun.core.version}</version>
-            </dependency>
-
-            <dependency>
-                <groupId>com.aliyun</groupId>
-                <artifactId>aliyun-java-sdk-dysmsapi</artifactId>
-                <version>${aliyun.dysmsapi.version}</version>
-            </dependency>
-
-            <!--aliyun oss-->
-            <dependency>
-                <groupId>com.aliyun.oss</groupId>
-                <artifactId>aliyun-sdk-oss</artifactId>
-                <version>${aliyun.oss.version}</version>
-            </dependency>
-
             <!--tk.mybatis 依赖-->
             <dependency>
                 <groupId>tk.mybatis</groupId>
@@ -312,6 +297,37 @@
                 <artifactId>4dkankan-utils-filestorage</artifactId>
                 <version>3.0.0-SNAPSHOT</version>
             </dependency>
+            <dependency>
+                <groupId>com.amazonaws</groupId>
+                <artifactId>aws-java-sdk-s3</artifactId>
+                <version>${aws.version}</version>
+            </dependency>
+            <!-- https://mvnrepository.com/artifact/com.qcloud/cos_api -->
+            <dependency>
+                <groupId>com.qcloud</groupId>
+                <artifactId>cos_api</artifactId>
+                <version>${cos.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>com.aliyun.oss</groupId>
+                <artifactId>aliyun-sdk-oss</artifactId>
+                <version>${aliyun-sdk-oss.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>io.minio</groupId>
+                <artifactId>minio</artifactId>
+                <version>${minio.version}</version>
+                <exclusions>
+                    <exclusion>
+                        <artifactId>okio</artifactId>
+                        <groupId>com.squareup.okio</groupId>
+                    </exclusion>
+                    <exclusion>
+                        <artifactId>okhttp</artifactId>
+                        <groupId>com.squareup.okhttp3</groupId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
         </dependencies>
     </dependencyManagement>