rain
2024-07-29 86384846e317381e7bb9e31ee76760e4ecb3ee67
src/main/java/com/dji/sample/media/util/MinioFileDownloader.java
@@ -1,5 +1,11 @@
package com.dji.sample.media.util;
import io.minio.MinioClient;
import io.minio.RemoveObjectArgs;
import io.minio.StatObjectArgs;
import io.minio.StatObjectResponse;
import io.minio.errors.MinioException;
import java.io.*;
import java.nio.file.*;
import java.util.*;
@@ -58,23 +64,49 @@
        }
    }
    public static void main(String[] args) {
            boolean success = deleteFileFromMinio("http://139.196.74.78:9000", "sxkj", "sxkj2024", "cloud-bucket", "test/瑞金图片.jpeg");
            if (!success) {
                System.out.println("File deletion failed or file did not exist.");
            }
        }
        public static boolean deleteFileFromMinio(String endpoint, String accessKey, String secretKey, String bucketName, String objectName) {
        try {
            String bucketPath = "/data/software/minio-data/cloud-bucket";
            List<String> prefixes = List.of(
                    "c88e9f12-9fab-4aca-8fc4-b02d0b0ce5f2/DJI_202407151726_001_c88e9f12-9fab-4aca-8fc4-b02d0b0ce5f2/"
            );
                // 创建MinioClient实例
                MinioClient minioClient = MinioClient.builder()
                        .endpoint(endpoint)
                        .credentials(accessKey, secretKey)
                        .build();
            MinioFileDownloader downloader = new MinioFileDownloader(bucketPath);
                // 检查文件是否存在
                try {
                    StatObjectResponse stat = minioClient.statObject(StatObjectArgs.builder()
                            .bucket(bucketName)
                            .object(objectName)
                            .build());
                    System.out.println("File exists, proceeding with deletion.");
            // 下载并压缩文件到本地目录
            String localSaveDir = "/path/to/local/save/directory"; // 修改为你想保存的本地目录
            downloader.downloadAndZipFolders(prefixes, localSaveDir);
            System.out.println("压缩文件已保存到:" + localSaveDir);
                    // 删除文件
                    minioClient.removeObject(RemoveObjectArgs.builder()
                            .bucket(bucketName)
                            .object(objectName)
                            .build());
                    System.out.println("File deleted successfully");
                    return true;
                } catch (Exception e) {
                    // 如果文件不存在,则捕获异常
                    System.out.println("File does not exist or cannot be accessed: " + e.getMessage());
                    return false;
                }
        } catch (Exception e) {
            e.printStackTrace();
                System.out.println("Unexpected error: " + e.getMessage());
                return false;
        }
    }
}