Docker部署Minio Java操作Minio
MinIo官网地址
https://www.minio.org.cn/download.shtml#/windows
docker 拉去minio镜像
docker run -p 9000:9000 -p 9001:9001 minio/minio server /data
\--console-address ":9001"
docker 启动镜像
docker run -d `
-p 9000:9000 `
-p 9001:9001 `
--name minio `
-v D:\minio-data:/data `
-e "MINIO_ROOT_USER=minioadmin" `
-e "MINIO_ROOT_PASSWORD=minioadmin" `
minio/minio server /data --console-address ":9001"
JavaSdk
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.4.3</version>
</dependency>
MinioUtil
package org.example;
import io.minio.*;
import io.minio.errors.*;
import java.io.IOException;
import java.io.InputStream;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;
public class MinioUtil {
public static void main(String[] args) throws Exception {
String bucketName = "image";
// upload("image", "test2.jpg", "D:\\Pictures\\Saved Pictures\\1754485978571.png");
// byte[] bytes = readByte("image", "test2.jpg");
// System.out.println(Base64.getEncoder().encodeToString(bytes));
remove(bucketName, "test2.jpg");
}
/**
* 读取minio文件字节数组
*
* @param bucketName minio桶名称
* @param remoteFileName minio文件名称
* @return byte[]
* @throws ServerException 异常抛出
* @throws InsufficientDataException 异常抛出
* @throws ErrorResponseException 异常抛出
* @throws IOException 异常抛出
* @throws NoSuchAlgorithmException 异常抛出
* @throws InvalidKeyException 异常抛出
* @throws InvalidResponseException 异常抛出
* @throws XmlParserException 异常抛出
* @throws InternalException 异常抛出
*/
public static byte[] readByte(String bucketName, String remoteFileName)
throws ServerException, InsufficientDataException, ErrorResponseException,
IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException,
XmlParserException, InternalException {
InputStream ins = readStream(bucketName, remoteFileName);
byte[] bytes = ins.readAllBytes();
ins.close();
return bytes;
}
/**
* 读取minio文件字节数组
*
* @param bucketName minio桶名称
* @param remoteFileName minio文件名称
* @return inputStream
* @throws ServerException 异常抛出
* @throws InsufficientDataException 异常抛出
* @throws ErrorResponseException 异常抛出
* @throws IOException 异常抛出
* @throws NoSuchAlgorithmException 异常抛出
* @throws InvalidKeyException 异常抛出
* @throws InvalidResponseException 异常抛出
* @throws XmlParserException 异常抛出
* @throws InternalException 异常抛出
*/
public static InputStream readStream(String bucketName, String remoteFileName)
throws ServerException, InsufficientDataException, ErrorResponseException,
IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException,
XmlParserException, InternalException {
return client().getObject(
GetObjectArgs.builder()
.bucket(bucketName)
.object(remoteFileName)
.build());
}
/**
* 下载文件到本地
*
* @param bucketName Minio桶名称
* @param remoteFileName Minio文件名称
* @param localFileName 本地文件全路径+文件名称
* @throws ServerException 异常抛出
* @throws InsufficientDataException 异常抛出
* @throws ErrorResponseException 异常抛出
* @throws IOException 异常抛出
* @throws NoSuchAlgorithmException 异常抛出
* @throws InvalidKeyException 异常抛出
* @throws InvalidResponseException 异常抛出
* @throws XmlParserException 异常抛出
* @throws InternalException 异常抛出
*/
public static void downloadFile(String bucketName, String remoteFileName, String localFileName)
throws ServerException, InsufficientDataException, ErrorResponseException,
IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException,
XmlParserException, InternalException {
MinioClient minioClient = client();
DownloadObjectArgs downloadArgs = DownloadObjectArgs.builder()
.bucket(bucketName)
.object(remoteFileName) // 远程文件名
.filename(localFileName) // 下载到本地的路径
.build();
minioClient.downloadObject(downloadArgs);
}
/**
* 上传文件到MinIo
*
* @param bucketName Minio桶名称
* @param remoteFileName Minio中文件名称
* @param localFileName 本地文件全路径
* @throws IOException 异常抛出
* @throws ServerException 异常抛出
* @throws InsufficientDataException 异常抛出
* @throws ErrorResponseException 异常抛出
* @throws NoSuchAlgorithmException 异常抛出
* @throws InvalidKeyException 异常抛出
* @throws InvalidResponseException 异常抛出
* @throws XmlParserException 异常抛出
* @throws InternalException 异常抛出
*/
public static void upload(String bucketName, String remoteFileName, String localFileName)
throws IOException, ServerException, InsufficientDataException, ErrorResponseException,
NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException,
XmlParserException, InternalException {
MinioClient minioClient = client();
UploadObjectArgs uploadArgs = UploadObjectArgs.builder()
.bucket(bucketName)
.object(remoteFileName) // 文件名
.filename(localFileName) // 本地文件路径
.build();
minioClient.uploadObject(uploadArgs);
}
/**
* 删除minio上的一个文件
*
* @param bucketName minio桶名称
* @param remoteFileName 远程文件名
* @throws ServerException 异常抛出
* @throws InsufficientDataException 异常抛出
* @throws ErrorResponseException 异常抛出
* @throws IOException 异常抛出
* @throws NoSuchAlgorithmException 异常抛出
* @throws InvalidKeyException 异常抛出
* @throws InvalidResponseException 异常抛出
* @throws XmlParserException 异常抛出
* @throws InternalException 异常抛出
*/
public static void remove(String bucketName, String remoteFileName)
throws ServerException, InsufficientDataException, ErrorResponseException,
IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException,
XmlParserException, InternalException {
client().removeObject(RemoveObjectArgs
.builder()
.bucket(bucketName)
.object(remoteFileName)
.build());
}
public static MinioClient client() {
return MinioClient.builder()
.endpoint("http://127.0.0.1:9000")
.credentials("minioadmin", "minioadmin")
.build();
}
}
浙公网安备 33010602011771号