java使用Minio
时间: 2025-02-11 07:00:58 浏览: 71
### 使用 MinIO Java SDK 进行对象存储操作
为了在Java应用程序中集成MinIO客户端SDK并执行基本的对象存储操作,开发者需遵循一系列配置和编程实践。首先,在Maven项目中的`pom.xml`文件里加入特定的依赖项以引入MinIO库[^4]。
```xml
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.2.2</version>
</dependency>
```
完成上述设置之后,便可以编写代码来连接到MinIO服务器,并实现诸如创建存储桶、上传文件以及下载文件等功能。下面是一些具体的例子:
#### 创建存储桶
通过调用`makeBucket()`方法可轻松建立新的存储空间。此过程涉及指定唯一的名称作为参数传递给该函数。
```java
import io.minio.MinioClient;
import java.util.concurrent.TimeUnit;
public class CreateBucketExample {
public static void main(String[] args) throws Exception {
try (MinioClient minioClient =
MinioClient.builder()
.endpoint("http://localhost:9000", "accessKey", "secretKey")
.build()) {
boolean found = minioClient.bucketExists(b -> b.bucket("my-bucketname"));
if (!found) { // 如果不存在则创建bucket
minioClient.makeBucket(m -> m.bucket("my-bucketname"));
}
}
}
}
```
#### 文件上传
要向已有的存储桶内放置数据,则可通过`putObject()`命令完成这项工作。这里不仅限于本地磁盘上的文件路径,还可以处理字节数组等形式的数据源。
```java
import org.apache.commons.compress.utils.IOUtils;
// ...其他导入语句...
public class UploadFileExample {
public static void main(String[] args) throws Exception {
try (MinioClient minioClient =
MinioClient.builder()
.endpoint("http://localhost:9000", "accessKey", "secretKey")
.build()) {
String bucketName = "my-bucketname";
String objectName = "examplefile.txt"; // 对象名即远程位置下的目标文件名
String filePath = "/path/to/file.txt";
minioClient.uploadObject(
up ->
up.bucket(bucketName).object(objectName).filename(filePath));
}
}
}
```
#### 下载文件
当需要获取先前存入的内容时,可以通过`getObject()`方法读取所需资源,并将其保存至本地系统或其他目的地。
```java
public class DownloadFileExample {
public static void main(String[] args) throws Exception {
try (MinioClient minioClient =
MinioClient.builder()
.endpoint("http://localhost:9000", "accessKey", "secretKey")
.build()) {
String bucketName = "my-bucketname";
String objectName = "examplefile.txt";
String destinationFilePath = "/destination/path/examplefile.txt";
minioClient.downloadObject(
down ->
down.bucket(bucketName)
.object(objectName)
.filename(destinationFilePath));
}
}
}
```
以上示例展示了如何利用MinIO Java SDK简化与S3兼容的服务交互流程,无论是管理存储桶还是操纵其中的对象都变得异常简便[^2]。
阅读全文
相关推荐


















