rain
2024-07-30 c56112796e4b0a642cf187a2fa16ee5a271383b0
文件压缩下载
4 files modified
37 ■■■■ changed files
src/main/java/com/dji/sample/media/service/impl/FileServiceImpl.java 8 ●●●● patch | view | raw | blame | history
src/main/java/com/dji/sample/media/util/MinioFileDownloader.java 4 ●●●● patch | view | raw | blame | history
src/main/java/com/dji/sample/speak/service/serviceImpl/SpeakVoiceServiceImpl.java 24 ●●●● patch | view | raw | blame | history
src/main/java/com/dji/sample/wayline/plane/controller/CreateWayLineController.java 1 ●●●● patch | view | raw | blame | history
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();