添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

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没有实现相关的一系列权限配置,所以自行研发了一套 Miniojava 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"的。如果已经存在,则不会创建