MinioClient 类

该类是 MinIO Java SDK 用于执行存储桶和对象操作的简单存储服务(又名 S3)客户端。

桶操作

  • 创建、列出和删除存储桶

  • 上传、获取和删除存储桶生命周期配置

  • 上传、获取和删除存储桶策略配置

  • 上传、获取和删除存储桶加密配置

  • 上传和获取存储桶默认保留配置

  • 上传和获取存储桶通知配置

  • 启用和禁用存储桶版本控制

对象操作

  • 上传、获取、删除和列出对象

  • 通过组合现有对象来创建对象

  • 上传和获取对象保留和合法保留

  • 通过 SQL 语句过滤对象内容

如果提供了访问/秘密密钥,则所有 S3 操作请求都使用 AWS 签名版本 4 进行签名; 否则他们是匿名执行的。

MinioClient 实例化

public MinioClient(String endpoint)

使用匿名访问创建具有给定端点的 MinIO 客户端对象。例如:

MinioClient minioClient = new MinioClient("https://play.min.io");

其中,endpoint 是 S3 服务的 URL、域名、IPv4 或 IPv6 地址。更多 endpoint 实例:

https://s3.amazonaws.com
https://s3.amazonaws.com/
https://play.min.io
http://play.min.io:9010/
localhost
localhost.localdomain
play.min.io
127.0.0.1
192.168.1.60
::1

public MinioClient(URL url)

使用匿名访问创建具有给定 URL 对象的 MinIO 客户端对象。例如:

MinioClient minioClient = new MinioClient(new URL("https://play.min.io"));

public MinioClient(HttpUrl url)

使用匿名访问使用给定的 HttpUrl 对象创建 MinIO 客户端对象。实例:

MinioClient minioClient = new MinioClient(new HttpUrl.parse("https://play.min.io"));

public MinioClient(String endpoint, String accessKey, String secretKey)

使用给定的 endpoint、accessKey 和 secretKey 创建 MinIO 客户端对象。实例:

MinioClient minioClient = new MinioClient("https://play.min.io",
     "Q3AM3UQ867SPQQA43P2F", "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG");

public MinioClient(String endpoint, String accessKey, String secretKey, String region)

使用给定的 endpoint、accessKey、secretKey 和区域名称创建 MinIO 客户端对象。例如:

MinioClient minioClient = new MinioClient("https://play.min.io",
     "Q3AM3UQ867SPQQA43P2F", "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG", "us-west-1");

public MinioClient(URL url, String accessKey, String secretKey)

使用给定的 URL 对象、accessKey 和 secretKey 创建 MinIO 客户端对象。例如:

MinioClient minioClient = new MinioClient(new URL("https://play.min.io"),
     "Q3AM3UQ867SPQQA43P2F", "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG");}

public MinioClient(HttpUrl url, String accessKey, String secretKey)

使用给定的 HttpUrl 对象、accessKey 和 secretKey 创建 MinIO 客户端对象。例如:

MinioClient minioClient = new MinioClient(HttpUrl.parse("https://play.min.io"),
     "Q3AM3UQ867SPQQA43P2F", "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG");

public MinioClient(String endpoint, int port, String accessKey, String secretKey)

使用给定的 endpoint、端口、accessKey 和 secretKey 创建 MinIO 客户端对象。例如:

MinioClient minioClient = new MinioClient("play.min.io", 9000,
     "Q3AM3UQ867SPQQA43P2F", "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG");

public MinioClient(String endpoint, String accessKey, String secretKey, boolean secure)

使用安全 (TLS) 连接创建具有给定 endpoint、accessKey 和 secretKey 的 MinIO 客户端对象。例如:

MinioClient minioClient = new MinioClient("play.min.io",
     "Q3AM3UQ867SPQQA43P2F", "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG", true);

public MinioClient(String endpoint, int port, String accessKey, String secretKey, boolean secure)

使用给定的 endpoint、端口、accessKey、secretKey和安全 (TLS) 连接创建 MinIO 客户端对象。例如:

MinioClient minioClient = new MinioClient("play.min.io", 9000,
     "Q3AM3UQ867SPQQA43P2F", "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG", true);

public MinioClient(String endpoint, int port, String accessKey, String secretKey, String region, boolean secure)

使用给定的 endpoint、端口、accessKey、secretKey、区域和安全 (TLS) 连接创建 MinIO 客户端对象。例如:

MinioClient minioClient = new MinioClient("play.min.io", 9000,
     "Q3AM3UQ867SPQQA43P2F", "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG", true);

public MinioClient(String endpoint, int port, String accessKey, String secretKey, String region, boolean secure, OkHttpClient httpClient)

使用给定的 endpoint、端口、accessKey、secretKey、区域和安全 (TLS) 连接创建 MinIO 客户端对象。例如:

MinioClient minioClient = new MinioClient("play.min.io", 9000,
     "Q3AM3UQ867SPQQA43P2F", "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG", true,
     customHttpClient);

常用方法

存储桶操作

  • makeBucket:创建一个新的存储桶

  • listBuckets:列出所有存储桶

  • bucketExists:检查存储桶是否存在

  • removeBucket:删除一个存储桶

  • listObjects:列出某个存储桶中的所有对象

  • listIncompleteUploads:列出存储桶中被部分上传的对象

文件对象操作

  • getObject:获取一个对象

  • putObject:上传一个对象

  • copyObject:拷贝一个对象

  • statObject:获取一个对象元数据

  • removeObject:删除一个对象

  • removeIncompleteUpload:删除一个未上传完成的对象

Presigned操作

  • presignedGetObject:生成一个给 HTTP GET 请求用的 presigned URL。浏览器/移动端的客户端可以用这个 URL 进行下载,即使其所在的存储桶是私有的。这个 presigned URL 可以设置一个失效时间,默认值是7天。

  • presignedPutObject:生成一个给 HTTP PUT 请求用的 presigned URL。浏览器/移动端的客户端可以用这个URL进行上传,即使其所在的存储桶是私有的。这个 presigned URL可以设置一个失效时间,默认值是7天。

  • presignedPostPolicy:允许给 POST 请求的 presigned URL 设置策略,比如接收对象上传的存储桶名称的策略,key 名称前缀,过期策略。

存储桶策略

  • getBucketPolicy:获得指定对象前缀的存储桶策略

  • setBucketPolicy:给一个存储桶+对象前缀设置策略

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号