适用于与Amazon S3兼容的云存储的MinIO Java SDK
优质
小牛编辑
139浏览
2023-12-01
MinIO Java Client SDK提供简单的API来访问任何与Amazon S3兼容的对象存储服务。
本快速入门指南将向你展示如何安装客户端SDK并执行示例java程序。有关API和示例的完整列表,请查看Java Client API Reference文档。
最低需求
Java 1.8或更高版本:
使用maven
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>7.0.2</version>
</dependency>
使用gradle
dependencies {
compile 'io.minio:minio:7.0.2'
}
直接下载JAR
你可以到maven仓库直接下载最新版的JAR。
快速入门示例-文件上传
本示例程序连接到一个对象存储服务,创建一个存储桶并上传一个文件到该桶中。
你需要有存储服务的三个参数才能连接到该服务。
参数 | 说明 |
---|---|
Endpoint | 对象存储服务的URL |
Access Key | Access key就像用户ID,可以唯一标识你的账户。 |
Secret Key | Secret key是你账户的密码。 |
在下面的例子的中,我们将使用一个运行在https://play.min.io的免费托管的MinIO服务。你可以随意使用此服务进行测试和开发。此示例中显示的访问凭据是公开的。
FileUploader.java
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;
public class FileUploader {
public static void main(String[] args) throws NoSuchAlgorithmException, IOException, InvalidKeyException, XmlPullParserException {
try {
// 使用MinIO服务的URL,端口,Access key和Secret key创建一个MinioClient对象
MinioClient minioClient = new MinioClient("https://play.min.io", "Q3AM3UQ867SPQQA43P2F", "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG");
// 检查存储桶是否已经存在
boolean isExist = minioClient.bucketExists("asiatrip");
if(isExist) {
System.out.println("Bucket already exists.");
} else {
// 创建一个名为asiatrip的存储桶,用于存储照片的zip文件。
minioClient.makeBucket("asiatrip");
}
// 使用putObject上传一个文件到存储桶中。
minioClient.putObject("asiatrip","asiaphotos.zip", "/home/user/Photos/asiaphotos.zip");
System.out.println("/home/user/Photos/asiaphotos.zip is successfully uploaded as asiaphotos.zip to `asiatrip` bucket.");
} catch(MinioException e) {
System.out.println("Error occurred: " + e);
}
}
}
编译FileUploader
javac -cp "minio-3.0.9-all.jar" FileUploader.java
运行FileUploader
java -cp "minio-3.0.9-all.jar:." FileUploader
/home/user/Photos/asiaphotos.zip is successfully uploaded as asiaphotos.zip to `asiatrip` bucket.
mc ls play/asiatrip/
[2016-06-02 18:10:29 PDT] 82KiB asiaphotos.zip
API文档
下面链接是完整的API文档
API文档: 操作存储桶
API文档: 操作文件对象
API文档: Presigned操作
API文档: 操作存储桶策略
完整示例
完整示例: Bucket Operations
- ListBuckets.java
- ListObjects.java
- BucketExists.java
- MakeBucket.java
- RemoveBucket.java
- ListIncompleteUploads.java
完整示例: Object Operations
- PutObject.java
- PutObjectEncrypted.java
- GetObject.Java
- GetObjectEncrypted.Java
- GetPartialObject.java
- RemoveObject.java
- RemoveObjects.java
- StatObject.java