MinIO是一个开源的对象存储服务器,支持S3协议。它提供了Java SDK,可以方便地使用Java编程语言来访问和管理MinIO对象存储服务器。下面是使用MinIO Java SDK实现创建桶的示例代码:
import io.minio.MinioClient;
import io.minio.errors.MinioException;
public class MinIOExample {
public static void main(String[] args) {
String endpoint = "http://127.0.0.1:9000";
String accessKey = "your-access-key";
String secretKey = "your-secret-key";
String bucketName = "test-bucket";
try {
// Create a MinioClient object with the endpoint, access key, and secret key.
MinioClient minioClient = new MinioClient(endpoint, accessKey, secretKey);
// Check if the bucket already exists
boolean bucketExists = minioClient.bucketExists(bucketName);
if (bucketExists) {
System.out.println("Bucket already exists.");
} else {
// Create a new bucket with the given bucket name
minioClient.makeBucket(bucketName);
System.out.println("Bucket created successfully.");
} catch (MinioException e) {
System.out.println("Error occurred: " + e.getMessage());
上面的代码使用Minio Java SDK来创建一个MinioClient对象,并使用该对象连接到MinIO对象存储服务器。然后,它使用makeBucket()方法创建一个新的桶。如果桶已经存在,它将输出“Bucket already exists.”的消息。
需要注意的是,使用MinIO Java SDK访问MinIO对象存储服务器时,需要提供正确的MinIO服务端点、访问密钥和密钥密码。在上面的示例中,我们假设MinIO服务器运行在本地主机上,端口号为9000,并使用访问密钥和密钥密码进行身份验证。在实际情况中,您需要根据自己的情况更改这些值。
如何设置桶的权限?
在MinIO中,可以通过设置桶策略来控制桶的访问权限。桶策略是一个JSON格式的文本文件,用于指定哪些实体(用户、组或IP地址)可以执行哪些操作(读、写、列举等)。
MinIO桶策略的基本结构如下所示:
"Version": "2012-10-17",
"Statement": [
"Action": ["action1", "action2", ...],
"Effect": "Allow|Deny",
"Principal": {"AWS": ["arn:aws:iam::account-id:user/user-name"]},
"Resource": ["arn:aws:s3:::bucket-name/object-prefix", ...]
- Version:指定策略语法版本(必需)。
- Statement:指定一个或多个声明,每个声明包含一个或多个条件,用于定义访问规则。
- Action:指定允许或拒绝的操作列表,如
"s3:GetObject"
表示允许读取对象。 - Effect:指定允许或拒绝操作的结果(必需)。
- Principal:指定允许或拒绝操作的主体,如IAM用户、组或角色。
- Resource:指定允许或拒绝操作的资源(必需)。
以下是一个示例策略,允许所有用户读取桶内的所有对象:
"Version": "2012-10-17",
"Statement": [
"Action": [
"s3:GetObject"
"Effect": "Allow",
"Principal": {
"AWS": [
"Resource": [
"arn:aws:s3:::mybucket/*"
使用MinIO Java SDK设置桶的权限非常简单。下面是一个示例代码片段,演示如何设置桶的权限:
import io.minio.MinioClient;
import io.minio.SetBucketPolicyArgs;
import io.minio.errors.MinioException;
public class MinIOExample {
public static void main(String[] args) {
String endpoint = "http://127.0.0.1:9000";
String accessKey = "your-access-key";
String secretKey = "your-secret-key";
String bucketName = "test-bucket";
try {
// Create a MinioClient object with the endpoint, access key, and secret key.
MinioClient minioClient = new MinioClient(endpoint, accessKey, secretKey);
// Define the policy string
String policy = "{\n" +
" \"Version\": \"2012-10-17\",\n" +
" \"Statement\": [\n" +
" {\n" +
" \"Action\": [\n" +
" \"s3:GetObject\"\n" +
" ],\n" +
" \"Effect\": \"Allow\",\n" +
" \"Principal\": {\n" +
" \"AWS\": [\n" +
" \"*\"\n" +
" ]\n" +
" },\n" +
" \"Resource\": [\n" +
" \"arn:aws:s3:::" + bucketName + "/*\"\n" +
" ]\n" +
" }\n" +
" ]\n" +
// Set the bucket policy
minioClient.setBucketPolicy(
SetBucketPolicyArgs.builder()
.bucket(bucketName)
.config(policy)
.build());
System.out.println("Bucket policy set successfully");
} catch (MinioException e) {
System.out.println("Error occurred: " + e);
这个示例代码中,我们使用了MinIO Java SDK的`setBucketPolicy()`方法,将一个指定的策略字符串应用到指定的桶中。需要注意的是,这个方法将覆盖已经存在的桶策略,因此请确保在调用这个方法之前备份好原有的策略。
MinIO是一个开源的对象存储服务器,支持S3协议。它提供了Java SDK,可以方便地使用Java编程语言来访问和管理MinIO对象存储服务器。上面的代码使用Minio Java SDK来创建一个MinioClient对象,并使用该对象连接到MinIO对象存储服务器。然后,它使用makeBucket()方法创建一个新的桶。如果桶已经存在,它将输出“Bucket already exists.”的消息。
文章目录前言一、policy策略1)7.0版本实现方式2)8.0后设置桶策略二、policy-理解json字符串含义1.新建桶是什么策略2.设置桶的规则3.用java代码完成1)将桶设置为public2)桶内文件夹权限设置4.prefix是断言吗?5.java代码设置桶策略总结
minio是一个文件存储服务器,他实现了亚马逊s3协议,所以在文件管理管理上有着更加细粒的权限划分,同时它有着部署简便,支持大数据存储,上传下载速度快。分布式部署可以实现纠删码防止文件丢失特性。今天这篇文章主要讲mini..
import java.io.IOException;
import java.security.NoSuchAlgorithmException;
import java.security.InvalidKeyException;
import org.xmlpull.v1.XmlPullParserException;
import io.minio.MinioClient;
import io.minio.errors.MinioException;
Minio JavaAPI没有实现相关桶的一系列权限配置,所以自行研发了一套
Minio用java api实现创建桶、桶存储配置(存储大小、生命周期)、策略配置、用户权限配置,获取桶已使用存储空间及配置总存储空间。
绝对是完整、实用性代码。
try {
// 创建MinioClient对象
MinioClient minioClient = new MinioClient("https://play.min.io",
"ACCESS_KEY",
"SECRET_KEY");
// 创建桶
boolean found = minioClient.bucketExists("mybucket");
if (!found) {
minioClient.makeBucket("mybucket");
} else {
System.out.println("Bucket 'mybucket' already exists.");
} catch (MinioException e) {
System.out.println("Error occurred: " + e);
以上代码中,我们首先创建了一个MinioClient对象,然后使用该对象创建了一个名为"mybucket"的桶。如果桶已经存在,则不会创建。