From c56112796e4b0a642cf187a2fa16ee5a271383b0 Mon Sep 17 00:00:00 2001
From: rain <167982779@qq.com>
Date: Tue, 30 Jul 2024 19:17:22 +0800
Subject: [PATCH] 文件压缩下载

---
 src/main/java/com/dji/sample/media/service/impl/FileServiceImpl.java               |    8 ++++----
 src/main/java/com/dji/sample/speak/service/serviceImpl/SpeakVoiceServiceImpl.java  |   24 ++++++++++++------------
 src/main/java/com/dji/sample/media/util/MinioFileDownloader.java                   |    4 ++--
 src/main/java/com/dji/sample/wayline/plane/controller/CreateWayLineController.java |    3 +--
 4 files changed, 19 insertions(+), 20 deletions(-)

diff --git a/src/main/java/com/dji/sample/media/service/impl/FileServiceImpl.java b/src/main/java/com/dji/sample/media/service/impl/FileServiceImpl.java
index 919be81..cd58095 100644
--- a/src/main/java/com/dji/sample/media/service/impl/FileServiceImpl.java
+++ b/src/main/java/com/dji/sample/media/service/impl/FileServiceImpl.java
@@ -455,18 +455,18 @@
 
     @Override
     public ResponseResult downloadImages(List<String> jobIds) {
+        String localSaveDir = "/home/drone/web/zip";
+        String filepath=localSaveDir+TimerUtil.getNowDay();
         try {
             String bucketPath = "/data/software/minio-data/cloud-bucket";
             List<String> prefixes = getUniqueFilePaths(jobIds);
             MinioFileDownloader downloader = new MinioFileDownloader(bucketPath);
-            // 下载并压缩文件到本地目录
-            String localSaveDir = "/data/software/minio-data/zip-bucket"; // 修改为你想保存的本地目录
-            downloader.downloadAndZipFolders(prefixes, localSaveDir);
+            downloader.downloadAndZipFolders(prefixes, localSaveDir,filepath);
         } catch (Exception e) {
             e.printStackTrace();
             return ResponseResult.error("下载失败" + e.getMessage());
         }
-        return ResponseResult.success("下载成功");
+        return ResponseResult.success(filepath);
     }
 
     @Override
diff --git a/src/main/java/com/dji/sample/media/util/MinioFileDownloader.java b/src/main/java/com/dji/sample/media/util/MinioFileDownloader.java
index 64b5cdb..6b622f5 100644
--- a/src/main/java/com/dji/sample/media/util/MinioFileDownloader.java
+++ b/src/main/java/com/dji/sample/media/util/MinioFileDownloader.java
@@ -19,13 +19,13 @@
         this.bucketPath = bucketPath;
     }
 
-    public void downloadAndZipFolders(List<String> prefixes, String localSaveDir) throws Exception {
+    public void downloadAndZipFolders(List<String> prefixes, String localSaveDir,String filepath) throws Exception {
         // 创建目标文件夹路径并生成zip文件名
         Path localSavePath = Paths.get(localSaveDir);
         if (!Files.exists(localSavePath)) {
             Files.createDirectories(localSavePath);
         }
-        String zipFileName = localSavePath.resolve("compressed_files.zip").toString();
+        String zipFileName = localSavePath.resolve(filepath).toString();
 
         // 创建压缩文件输出流
         try (ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipFileName))) {
diff --git a/src/main/java/com/dji/sample/speak/service/serviceImpl/SpeakVoiceServiceImpl.java b/src/main/java/com/dji/sample/speak/service/serviceImpl/SpeakVoiceServiceImpl.java
index 1c3368e..ca12a9b 100644
--- a/src/main/java/com/dji/sample/speak/service/serviceImpl/SpeakVoiceServiceImpl.java
+++ b/src/main/java/com/dji/sample/speak/service/serviceImpl/SpeakVoiceServiceImpl.java
@@ -54,9 +54,9 @@
         fileDto.setName(name);
         dto.setPsdk_index(psdk_index);
         dto.setFile(fileDto);
-        double time = getAudioDuration(file);
+//        double time = getAudioDuration(file);
         voiceEntity.setMd5(md5);
-        voiceEntity.setSecond(time);
+//        voiceEntity.setSecond(time);
         voiceEntity.setUrl(url);
         voiceEntity.setName(name);
         voiceMapper.insert(voiceEntity);
@@ -92,7 +92,7 @@
     public int awayRiver(String sn) {
         SpeakVoiceStartDto dto = new SpeakVoiceStartDto();
         SpeakVoiceFileDto fileDto = new SpeakVoiceFileDto();
-        fileDto.setUrl("https://dev.jxpskj.com:8026/cloud-bucket/00015672-5d68-4985-9340-b23919d7f77e/DJI_202403060918_008_00015672-5d68-4985-9340-b23919d7f77e/qq.wav");
+        fileDto.setUrl("http://dev.jxpskj.com:9000/cloud-bucket/请远离河道07151604");
         fileDto.setMd5("d2b448dcba09071834d02f082dc5386f");
         fileDto.setFormat(FormatEnum.PCM);
         fileDto.setName("河道危险");
@@ -121,7 +121,7 @@
         String accessKey = pojo.getAccessKey();
         String secretKey = pojo.getSecretKey();
         String bucketName = pojo.getBucket();
-        String objectName = "/" + fileName + getNowTimeName();
+        String objectName = "/" + fileName + getNowTimeName()+"pcm";
         FileServiceImpl.uploadFile(endpoint, accessKey, secretKey, bucketName, objectName, file, "audio/mpeg");
         return endpoint + "/" + bucketName + objectName;
     }
@@ -132,12 +132,12 @@
         return currentTime.format(DateTimeFormatter.ofPattern("MMddHHmm"));
     }
 
-    public static double getAudioDuration(File file) throws UnsupportedAudioFileException, IOException {
-        AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(file);
-        AudioFormat format = audioInputStream.getFormat();
-        long audioFileLength = file.length();
-        int frameSize = format.getFrameSize();
-        float frameRate = format.getFrameRate();
-        return Math.round(audioFileLength / (frameSize * frameRate));
-    }
+//    public static double getAudioDuration(File file) throws UnsupportedAudioFileException, IOException {
+//        AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(file);
+//        AudioFormat format = audioInputStream.getFormat();
+//        long audioFileLength = file.length();
+//        int frameSize = format.getFrameSize();
+//        float frameRate = format.getFrameRate();
+//        return Math.round(audioFileLength / (frameSize * frameRate));
+//    }
 }
diff --git a/src/main/java/com/dji/sample/wayline/plane/controller/CreateWayLineController.java b/src/main/java/com/dji/sample/wayline/plane/controller/CreateWayLineController.java
index 88b3bc8..ea7fd8c 100644
--- a/src/main/java/com/dji/sample/wayline/plane/controller/CreateWayLineController.java
+++ b/src/main/java/com/dji/sample/wayline/plane/controller/CreateWayLineController.java
@@ -69,11 +69,10 @@
                                             @RequestBody CreateWaylineParam param,
                                             HttpServletRequest request) throws IOException {
         String kmz=param.getWaylineName()+".kmz";
-//         初始化模板对象
         MinioFileDownloader.deleteFileFromMinio(pojo.getEndpoint(), pojo.getAccessKey(), pojo.getSecretKey(), pojo.getBucket(), kmz);
         CustomClaim customClaim = (CustomClaim) request.getAttribute(TOKEN_CLAIM);
         String creator = customClaim.getUsername();
-//         初始化模板对象
+//        初始化模板对象
         XMLTemplateModel xmlModel = XMLTemplateModel.initPolygon(param);
 //        生成航线文件
         CreateWaylineFileUtils.createWaylineFileByPolygon(xmlModel, patchesConfigPojo.getPlaneTemplate(), patchesConfigPojo.getPlaneTargetTemplate());

--
Gitblit v1.9.3