先上代码
io.minio
minio
7.1.0
public static void iterableCopyOfMinIoPath(MinioClient minioClient, String bucketName, String minIoPath, String targetPath){
try {
if (minioClient.bucketExists(bucketName)){
Iterable> itemLists =
minioClient.listObjects(ListObjectsArgs.builder().bucket(bucketName).prefix(minIoPath).recursive(false).build());
for (Result- result : itemLists) {
Item item = result.get();
if (item.isDir()){
new File(targetPath+"\"+bucketName+"\"+item.objectName()).mkdirs();
iterableCopyOfMinIoPath(minioClient,bucketName,item.objectName(),targetPath);
}else {
InputStream inputStream = minioClient.getObject(GetObjectArgs.builder().bucket(bucketName)
.object(item.objectName()).build());
FileOutputStream fileOutputStream = new FileOutputStream(targetPath+"\"+bucketName+"\"+item.objectName());
int index;
byte[] bytes = new byte[1024];
while ((index = inputStream.read(bytes)) != -1) {
fileOutputStream.write(bytes, 0, index);
fileOutputStream.flush();
}
fileOutputStream.close();
inputStream.close();
}
}
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}
调用
亲测可用
其中在
Iterable> itemLists = minioClient.listObjects(ListObjectsArgs.builder().bucket(bucketName).prefix(minIoPath).recursive(false).build());
中: .prefix(“”)方法添加如"AA/"后,itemLists即可获取到bucketName/AA/目录下的子文件/目录
PS:本人新手菜鸡,具体的就不太懂了
参考文章:Minio 批量下载文件,并压缩文件,使用sftp上传文件_海枯石烂i的博客-CSDN博客_minio 批量下载



