minio查询文件夹下面内容的时候,路径最后一定要带个/,不然就是查询的当前文件夹自己
代码示例:
下面代码中bucketName是要查询的桶名称,perfixx传的就是路径
如果传一个2020/06/01,查询结果只有一个2020/06/01文件夹
传2020/06/01/,查询结果才是这个文件夹中的内容
/**
* 查看文件对象,文件夹中的
*
* @param path 文件夹 结尾必须有 /
* @return 存储bucket内文件对象信息
*/
public List<ObjectItem> listObjects(MinioClient minioClient, String path, Boolean onlyDir) {
Iterable<Result<Item>> results = minioClient.listObjects(
ListObjectsArgs.builder()
.bucket(bucketName)
.prefix(path)
.recursive(false)
.build());
List<ObjectItem> objectItems = new ArrayList<>();
try {
for (Result<Item> result : results) {
Item item = result.get();
if (onlyDir && !item.isDir()) {
continue;
}
if (!onlyDir && item.isDir()) {
continue;
}
ObjectItem objectItem = new ObjectItem();
String[] paths = item.objectName().split("/");
objectItem.setName(paths[paths.length - 1]);
objectItem.setSize(item.size());
objectItems.add(objectItem);
}
} catch (Exception e) {
e.printStackTrace();
return null;
}
return objectItems;
}