java minio创建桶 公开
时间: 2024-09-24 17:07:36 浏览: 63
在Java中使用MinIO库创建公开(公开读取但私有写入)的存储桶,首先需要安装MinIO客户端并配置连接信息。以下是简单的步骤:
1. **添加依赖**:
如果你还没有将MinIO SDK添加到项目中,可以通过Maven或Gradle添加依赖。例如,对于Maven:
```xml
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.0.9</version> <!-- 更新至最新稳定版本 -->
</dependency>
```
2. **初始化客户端**:
```java
import io.minio.MinioClient;
import io.minio.errors.MinioException;
String endpoint = "http://your-minio-server.com"; // 你的MinIO服务器地址
String accessKey = "YOUR_ACCESS_KEY";
String secretKey = "YOUR_SECRET_KEY";
MinioClient minioClient = new MinioClient(endpoint, accessKey, secretKey);
```
3. **创建公开桶**:
使用`listBuckets()`获取所有桶,如果不存在目标桶,则创建一个新的公开桶。为了设置桶的权限为公共读取,可以使用`putBucketPolicy()`方法:
```java
try {
// 检查是否已存在同名的bucket
List<BucketStat> bucketList = minioClient.listBuckets();
boolean bucketExists = false;
for (BucketStat stat : bucketList) {
if (stat.name.equals("public-bucket")) {
bucketExists = true;
break;
}
}
if (!bucketExists) {
// 创建新桶并设置访问策略
Policy policy = new Policy()
.withPublicRead(true)
.withPublicWrite(false);
BucketInfo bucket = new BucketInfo("public-bucket", policy);
minioClient.putBucket(bucket);
}
} catch (MinioException e) {
System.err.println("Error creating or listing buckets: " + e);
}
```
4. **清理资源**:
最后别忘了关闭客户端连接:
```java
minioClient.close();
```
阅读全文