minio 批量删除,如果拿到的是文件夹,怎么获取文件夹下的文件 Java
时间: 2024-04-05 17:24:24 浏览: 22
可以使用Minio Java SDK提供的`listObjects()`方法获取指定前缀的所有对象,然后通过遍历对象列表来获取文件夹下的所有文件。
以下是一个示例代码:
```java
import io.minio.*;
import io.minio.errors.*;
import java.io.*;
import java.security.*;
import java.util.*;
import org.xmlpull.v1.XmlPullParserException;
public class MinioExample {
public static void main(String[] args)
throws NoSuchAlgorithmException, IOException, InvalidKeyException, XmlPullParserException, InvalidResponseException, ErrorResponseException, RegionConflictException, InternalException {
String accessKey = "YOUR-ACCESSKEYID";
String secretKey = "YOUR-SECRETACCESSKEY";
String endpoint = "https://s3.amazonaws.com"; // 修改为你的Minio服务地址
String bucketName = "YOUR-BUCKETNAME";
String prefix = "YOUR-DIRECTORY-PREFIX"; // 文件夹前缀
// 初始化Minio客户端
MinioClient minioClient = new MinioClient.Builder()
.endpoint(endpoint)
.credentials(accessKey, secretKey)
.build();
// 获取指定前缀的所有对象
Iterable<Result<Item>> objects = minioClient.listObjects(ListObjectsArgs.builder().bucket(bucketName).prefix(prefix).recursive(true).build());
// 遍历对象列表
for (Result<Item> result : objects) {
Item item = result.get();
System.out.println(item.objectName());
}
}
}
```
在上面的示例代码中,`listObjects()`方法的`prefix`参数指定了要获取的文件夹前缀,`recursive`参数指定了是否递归获取子文件夹下的文件。遍历对象列表时,可以通过`Item`对象的`objectName()`方法获取对象的名称,即文件路径。如果要删除这些文件,可以使用`removeObject()`方法批量删除。