minio Java设置桶的权限
时间: 2025-06-09 22:24:45 浏览: 26
### 使用Java设置MinIO桶的权限
为了通过Java代码来管理MinIO中的存储桶策略,可以利用`minio-java` SDK。下面是一个具体的例子展示如何配置一个公共读取访问权限给指定的存储桶。
```java
import io.minio.MinioClient;
import io.minio.SetBucketPolicyArgs;
public class MinIoExample {
public static void main(String[] args) throws Exception {
// 创建一个新的MinIO客户端实例并连接到服务器。
try (MinioClient minioClient = MinioClient.builder()
.endpoint("https://play.min.io") // 替换成实际的服务地址
.credentials("YOUR-ACCESSKEYID", "YOUR-SECRETACCESSKEY")
.build()) {
String bucketName = "my-bucket-name";
// 定义JSON格式的bucket policy字符串.
String bucketPolicyJson =
"{ \"Version\": \"2012-10-17\", "
+ "\"Statement\": [{"
+ " \"Effect\": \"Allow\","
+ " \"Principal\": {\"AWS\": [\"*\"]},"
+ " \"Action\": [\"s3:GetObject\"],"
+ " \"Resource\": [\"arn:aws:s3:::" + bucketName + "/*\"]"
+ "}]}"
;
// 设置存储桶策略为公开可读。
minioClient.setBucketPolicy(
SetBucketPolicyArgs.builder().bucket(bucketName).config(bucketPolicyJson).build());
System.out.println("成功设置了存储桶:" + bucketName + " 的权限");
}
}
}
```
上述程序创建了一个新的MinIO客户端对象,并指定了服务端点以及认证凭证。接着定义了一条允许任何主体执行`s3:GetObject`动作于该存储桶内所有资源上的策略语句。最后调用了`setBucketPolicy()`方法应用此自定义策略至目标存储桶上[^1]。
阅读全文
相关推荐



















