From a0ad613e75498fb4331b7f3eb55b60cec7896d88 Mon Sep 17 00:00:00 2001
From: shenyijian <1178253012@qq.com>
Date: Tue, 28 Nov 2023 14:02:30 +0800
Subject: [PATCH] 无人机 -外网文件地址处理
---
src/main/java/com/dji/sample/wayline/controller/WaylineFileController.java | 6 ++++--
src/main/java/com/dji/sample/common/util/MinioUrlUtils.java | 35 +++++++++++++++++++++++++++++++++++
src/main/java/com/dji/sample/media/service/impl/MediaServiceImpl.java | 2 +-
src/main/java/com/dji/sample/manage/service/impl/DeviceServiceImpl.java | 4 ++--
src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java | 6 +++---
5 files changed, 45 insertions(+), 8 deletions(-)
diff --git a/src/main/java/com/dji/sample/common/util/MinioUrlUtils.java b/src/main/java/com/dji/sample/common/util/MinioUrlUtils.java
new file mode 100644
index 0000000..a33ab97
--- /dev/null
+++ b/src/main/java/com/dji/sample/common/util/MinioUrlUtils.java
@@ -0,0 +1,35 @@
+package com.dji.sample.common.util;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.net.URL;
+
+@Component
+public class MinioUrlUtils {
+
+ private static String outNetAddress;
+
+
+ private static String endpointAddress;
+
+ public static String getUrl(URL url) {
+ String s = url.toString();
+ int index = s.indexOf('?');
+ if (index != -1) {
+ s = s.substring(0, index);
+ s = s.replace(endpointAddress, outNetAddress);
+ }
+ return s;
+ }
+
+ @Value("${oss.out-net-file-address}")
+ public void setOutNetAddress(String outNetAddress) {
+ MinioUrlUtils.outNetAddress = outNetAddress;
+ }
+
+ @Value("${oss.endpoint}")
+ public void setEndpointAddress(String endpointAddress) {
+ MinioUrlUtils.endpointAddress = endpointAddress;
+ }
+}
diff --git a/src/main/java/com/dji/sample/manage/service/impl/DeviceServiceImpl.java b/src/main/java/com/dji/sample/manage/service/impl/DeviceServiceImpl.java
index fba96e7..1ddd9db 100644
--- a/src/main/java/com/dji/sample/manage/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/dji/sample/manage/service/impl/DeviceServiceImpl.java
@@ -333,8 +333,8 @@
deviceDTO.setLatestWaylineJob(latestJob);
deviceDTO.setOnlineStatus(true);
OsdDockReceiver osdDockReceiver = (OsdDockReceiver) RedisOpsUtils.get("osd:" + deviceDTO.getDeviceSn());
- deviceDTO.setLatitude(osdDockReceiver.getLatitude());
- deviceDTO.setLongitude(osdDockReceiver.getLongitude());
+ deviceDTO.setLatitude(osdDockReceiver!=null? osdDockReceiver.getLatitude():null);
+ deviceDTO.setLongitude(osdDockReceiver!=null? osdDockReceiver.getLongitude():null);
});
return devicesList;
diff --git a/src/main/java/com/dji/sample/media/service/impl/MediaServiceImpl.java b/src/main/java/com/dji/sample/media/service/impl/MediaServiceImpl.java
index bbbf66f..87a9bc2 100644
--- a/src/main/java/com/dji/sample/media/service/impl/MediaServiceImpl.java
+++ b/src/main/java/com/dji/sample/media/service/impl/MediaServiceImpl.java
@@ -152,7 +152,7 @@
log.error("保存文件到数据库失败,请手动检查数据;Failed to save the file to the database, please check the data manually.");
return null;
}
- } else if (!StringUtils.isEmpty(jobId)) { //一键起飞操作需要上传文件
+ } else if (!StringUtils.isEmpty(jobId)) { //一键起飞操作需要
WaylineJobDTO waylineJobDTO = new WaylineJobDTO();
waylineJobDTO.setWorkspaceId(device.getWorkspaceId());
waylineJobDTO.setDockSn(device.getDeviceSn());
diff --git a/src/main/java/com/dji/sample/wayline/controller/WaylineFileController.java b/src/main/java/com/dji/sample/wayline/controller/WaylineFileController.java
index 32f53ef..5ceaab9 100644
--- a/src/main/java/com/dji/sample/wayline/controller/WaylineFileController.java
+++ b/src/main/java/com/dji/sample/wayline/controller/WaylineFileController.java
@@ -3,6 +3,7 @@
import com.dji.sample.common.model.CustomClaim;
import com.dji.sample.common.model.PaginationData;
import com.dji.sample.common.model.ResponseResult;
+import com.dji.sample.common.util.MinioUrlUtils;
import com.dji.sample.log.aspect.SysLogAnnotation;
import com.dji.sample.wayline.model.dto.WaylineFileDTO;
import com.dji.sample.wayline.model.dto.WaylineFileUploadDTO;
@@ -10,6 +11,7 @@
import com.dji.sample.wayline.model.param.WaylineQueryParam;
import com.dji.sample.wayline.service.IWaylineFileService;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@@ -78,7 +80,7 @@
try {
URL url = waylineFileService.getObjectUrl(workspaceId, waylineId);
- response.sendRedirect(url.toString());
+ response.sendRedirect(MinioUrlUtils.getUrl(url));
} catch (IOException | SQLException e) {
e.printStackTrace();
@@ -96,7 +98,7 @@
} catch (SQLException e) {
throw new RuntimeException(e);
}
- return ResponseResult.success(url);
+ return ResponseResult.success(MinioUrlUtils.getUrl(url));
}
/**
diff --git a/src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java b/src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java
index f0c7a10..9ae0776 100644
--- a/src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java
+++ b/src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java
@@ -13,6 +13,7 @@
import com.dji.sample.common.model.Pagination;
import com.dji.sample.common.model.PaginationData;
import com.dji.sample.common.model.ResponseResult;
+import com.dji.sample.common.util.MinioUrlUtils;
import com.dji.sample.common.util.SpringBeanUtils;
import com.dji.sample.component.mqtt.model.*;
import com.dji.sample.component.mqtt.service.IMessageSenderService;
@@ -352,7 +353,6 @@
// get file url
//获取航线文件地址
URL url = waylineFileService.getObjectUrl(waylineJob.getWorkspaceId(), waylineFile.get().getWaylineId());
-
WaylineTaskCreateDTO flightTask = WaylineTaskCreateDTO.builder()
.flightId(waylineJob.getJobId())
.executeTime(waylineJob.getBeginTime().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli())
@@ -361,7 +361,7 @@
.rthAltitude(waylineJob.getRthAltitude())
.outOfControlAction(waylineJob.getOutOfControlAction())
.file(WaylineTaskFileDTO.builder()
- .url(url.toString())
+ .url(MinioUrlUtils.getUrl(url))
.fingerprint(waylineFile.get().getSign())
.build())
.build();
@@ -584,7 +584,7 @@
url = waylineFileService.getObjectUrl(waylineJob.getWorkspaceId(), waylineFile.get().getWaylineId());
builder.data(RequestsReply.success(WaylineTaskCreateDTO.builder()
.file(WaylineTaskFileDTO.builder()
- .url(url.toString())
+ .url(MinioUrlUtils.getUrl(url))
.fingerprint(waylineFile.get().getSign())
.build())
.build()));
--
Gitblit v1.9.3