minio 根据文件名批量删除文件java工具类
时间: 2023-11-11 13:08:09 浏览: 48
可以使用 Minio Java SDK 中的 `removeObjects()` 方法来批量删除文件。
以下是一个示例代码:
```java
import io.minio.*;
import io.minio.errors.*;
import java.io.*;
import java.security.*;
import java.util.*;
public class MinioUtils {
// 初始化 Minio 客户端
private static final MinioClient minioClient = MinioClient.builder()
.endpoint("http://minio.example.com")
.credentials("ACCESS_KEY", "SECRET_KEY")
.build();
// 批量删除指定前缀的文件
public static void deleteObjects(String bucketName, String prefix) throws Exception {
// 构造删除请求
List<String> objectNames = new ArrayList<>();
Iterable<Result<Item>> results = minioClient.listObjects(ListObjectsArgs.builder().bucket(bucketName).prefix(prefix).build());
for (Result<Item> result : results) {
objectNames.add(result.get().objectName());
}
Iterable<Result<DeleteError>> errors = minioClient.removeObjects(
RemoveObjectsArgs.builder().bucket(bucketName).objects(objectNames).build());
// 打印错误信息
for (Result<DeleteError> error : errors) {
System.out.println("Error deleting object " + error.get().objectName() + ": " + error.get().message());
}
}
}
```
在上面的示例代码中,`deleteObjects()` 方法接受两个参数:`bucketName` 表示要删除的文件所在的存储桶名称,`prefix` 表示要删除的文件名前缀。该方法会列出所有与指定前缀匹配的文件名,并将它们添加到一个列表中。然后,通过调用 `removeObjects()` 方法来批量删除这些文件。如果删除过程中发生错误,会将错误信息打印到控制台。
注意,需要将 `ACCESS_KEY` 和 `SECRET_KEY` 替换为你的 Minio 访问密钥。