java 下载minio文件夹
时间: 2023-11-10 15:59:30 浏览: 108
您可以使用 Minio Java 客户端来下载 Minio 存储桶中的文件夹。以下是示例代码:
```java
import io.minio.MinioClient;
import io.minio.errors.MinioException;
import io.minio.messages.Item;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
import java.util.stream.Collectors;
public class DownloadFolderExample {
public static void main(String[] args) throws IOException {
try {
// 创建 Minio 客户端
MinioClient minioClient = MinioClient.builder()
.endpoint("http://localhost:9000")
.credentials("minio_access_key", "minio_secret_key")
.build();
// 定义要下载的存储桶和文件夹路径
String bucketName = "my-bucket";
String folderPath = "path/to/folder";
// 列出文件夹中的所有对象
Iterable<Item> objects = minioClient.listObjects(bucketName, folderPath, true);
// 收集所有对象的名称
List<String> objectNames = StreamSupport.stream(objects.spliterator(), false)
.map(Item::objectName)
.collect(Collectors.toList());
// 下载每个对象
for (String objectName : objectNames) {
// 构建本地文件路径
String localFilePath = "path/to/local/folder/" + objectName.replace(folderPath + "/", "");
// 下载对象到本地文件系统
minioClient.downloadObject(bucketName, objectName, localFilePath);
}
System.out.println("文件夹下载完成!");
} catch (MinioException e) {
System.out.println("Error occurred: " + e);
}
}
}
```
请注意,上述示例代码假定 Minio 服务器正在本地运行,并且存储桶和文件夹路径已在 Minio 中存在。您需要将 `endpoint`、`credentials`、`bucketName` 和 `folderPath` 更改为适合您的环境的值。您还需要将 `localFilePath` 更改为您要将对象下载到的本地文件路径。
阅读全文