使用Java连接Minio
时间: 2025-06-18 12:13:25 浏览: 23
### 如何用Java连接MinIO对象存储服务
为了实现Java程序与MinIO对象存储服务的交互,需要完成以下几个方面的配置和编码工作:
#### 1. 引入Maven依赖
在项目的`pom.xml`文件中添加MinIO客户端库的相关依赖。以下是具体的依赖代码[^3]:
```xml
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.3.3</version>
</dependency>
```
#### 2. 创建MinIO客户端实例
通过`MinioClient`类创建一个用于访问MinIO服务器的客户端实例。以下是一个典型的初始化代码示例[^1][^2]:
```java
import io.minio.MinioClient;
public class MinioConnectionExample {
public static void main(String[] args) throws Exception {
// 初始化MinIO客户端
MinioClient minioClient = MinioClient.builder()
.endpoint("http://localhost:9000") // 替换为实际的MinIO服务地址
.credentials("your-access-key", "your-secret-key") // 替换为实际的Access Key和Secret Key
.build();
// 测试连接是否成功
boolean isExist = minioClient.bucketExists(b -> b.bucket("mybucket"));
System.out.println("Bucket exists: " + isExist);
}
}
```
上述代码展示了如何设置MinIO的服务端URL、访问密钥以及秘密密钥。
#### 3. 基本操作示例
除了简单的连接测试外,还可以执行其他基本操作,比如上传文件、下载文件或列出桶内的对象列表等。以下是一些常见的操作示例:
##### (1) **上传文件**
将本地文件上传至指定的桶中。
```java
minioClient.putObject(
PutObjectArgs.builder().bucket("mybucket").object("myobject")
.filename("/path/to/file.txt").build());
System.out.println("File uploaded successfully.");
```
##### (2) **下载文件**
从MinIO服务器上下载某个对象并保存到本地路径。
```java
minioClient.downloadObject(
DownloadObjectArgs.builder().bucket("mybucket").object("myobject")
.filename("/destination/path/file.txt").build());
System.out.println("File downloaded successfully.");
```
##### (3) **删除单个文件**
如果需要移除特定的对象,则可以调用相应的删除方法。
```java
minioClient.removeObject(RemoveObjectArgs.builder().bucket("mybucket").object("myobject").build());
System.out.println("Object removed successfully.");
```
##### (4) **批量删除文件夹下所有文件**
由于MinIO不支持直接删除整个目录结构,因此可以通过遍历目标前缀下的所有条目逐一清除它们来达到目的[^4]。
```java
Iterable<Result<Item>> results = minioClient.listObjects(ListObjectsArgs.builder().bucket("mybucket").prefix("folder/").recursive(true).build());
for (Result<Item> result : results) {
Item item = result.get();
minioClient.removeObject(RemoveObjectArgs.builder().bucket("mybucket").object(item.objectName()).build());
}
System.out.println("All objects under the specified prefix have been deleted.");
```
---
###
阅读全文
相关推荐


















