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 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))) { 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)); // } } src/main/java/com/dji/sample/wayline/plane/controller/CreateWayLineController.java
@@ -69,7 +69,6 @@ @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();