MinIO Java客户端 语法
MinIO Java客户端
minio使用的8X版本
创建存储对象
// 创建 MinioUploader 对象并连接到 Minio 对象存储
MinioClient minioClient = MinioClient.builder()
.endpoint(Endpoint)
.credentials(AccessKey, SecretKey)
.build();
判断minio桶名是否存在
// 检查存储桶是否存在,如果不存在则创建它
BucketExistsArgs exist = BucketExistsArgs.builder().bucket(BucketNameKmz).build();
boolean result = minioClient.bucketExists(exist);
if(!result){
MakeBucketArgs create =MakeBucketArgs.builder().bucket(BucketNameKmz).build();
minioClient.makeBucket(create);
System.out.println("Bucket created: " + "bucket");
}else {
System.out.println("Bucket already exists: " + "bucket");
}
检查minio桶下对象(文件)是否存在
// 检查对象是否存在
/**
bucketName:桶名
objectName:桶下文件(文件
*/
boolean isObjectExist = minioClient.statObject(bucketName, objectName) != null;
if (isObjectExist) {
System.out.println("Object exists in bucket: " + bucketName);
} else {
System.out.println("Object not found in bucket: " + bucketName);
}
设置桶为公共的
// 设置桶为公共的
minioClient.setBucketPolicy(
SetBucketPolicyArgs.builder()
.bucket("cheshi")
.config("{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":[\"s3:GetObject\"],\"Resource\":[\"arn:aws:s3:::cheshi/*\"]}]}")
.build()
);
删除存储桶中的对象
// 设置桶为公共的
minioClient.removeObject(
RemoveObjectArgs.builder()
.bucket(bucketName)
.object(objectName)
.build()
);
删除存储桶中的文件夹
链接: 待补
上传除存储桶中的对象
// 上传文件
PutObjectArgs putObjectArgs = PutObjectArgs.builder()
.bucket("my-bucket")
.object("my-object")
.filename("path/to/local/file")
.build();
minioClient.putObject(putObjectArgs);
//写入文件
minioClient.putObject(
PutObjectArgs.builder()
.bucket(bucketName)
.object(objectName)
.stream(chunk.getInputStream(), chunk.getSize(), -1)
.contentType(chunk.getContentType())
.build());
byteArrayInputStream.available()
//这段代码是使用MinIO Java客户端向MinIO服务器上传对象(文件或数据块)的操作。具体来说,它执行了以下操作:
//使用PutObjectArgs的builder()方法创建一个上传对象的参数构建器。
//使用.bucket(bucketName)指定存储桶的名称。
//使用.object(objectName)指定要上传的对象的名称。
//使用.stream(chunk.getInputStream(), chunk.getSize(), -1)指定要上传的对象的输入流、大小和偏移量。其中chunk.getInputStream()是获取要上传对象的输入流,chunk.getSize()是获取对象大小,-1表示不设置偏移量。
//使用.contentType(chunk.getContentType())指定要上传对象的内容类型。
//最后使用.build()方法构建上传对象的参数,然后通过minioClient.putObject()方法执行对象上传操作。
//这段代码的作用是将指定的对象(通过输入流chunk.getInputStream())上传到指定的存储桶中,并设置对象的名称和内容类型。
生成预签名的对象URL
使用MinIO Java客户端生成预签名的对象URL。预签名对象URL是一个临时的URL,用于执行一次性的对象操作,如上传、下载或删除对象。
String fileUrl = minioClient.getPresignedObjectUrl(
GetPresignedObjectUrlArgs.builder()
.method(Method.PUT)
.bucket(bucketName)
.object(objectName)
.build()
);
执行对象的复制操作
CopySource copySource = CopySource.builder()
.bucket(BucketNameKmz)
.object(pathOld)
.build();
minioClient.copyObject(
CopyObjectArgs.builder()
.source(copySource)
.bucket(BucketNameKmz)
.object(pathNew)
.build());