MinIO【部署 01】MinIO安装及SpringBoot集成简单测试_minio arm架构安装

36 阅读2分钟

RootPass: minioadmin

Console: http://tcloud:9090 RootUser: minioadmin RootPass: minioadmin

Command-line: min.io/docs/minio/… $ mc alias set myminio http://172.17.0.8:9000 minioadmin minioadmin

Documentation: min.io/docs/minio/… Warning: The standard parity is set to 0. This can lead to data loss.



后台启动命令

nohup /usr/local/bin/minio server /home/minio/data --console-address tcloud:9090 > /home/minio/data/minio.log 2>&1 &

自定义账号密码后的启动

export MINIO_ACCESS_KEY=minio export MINIO_SECRET_KEY=miniostorage nohup /usr/local/bin/minio server /home/minio/data --console-address tcloud:9090 > /home/minio/data/minio.log 2>&1 &


### 1.3 Connect Your Browser to the MinIO Server


工作台详细[使用文档]( ) https://min.io/docs/minio/linux/administration/minio-console.html#minio-console


登录页面:


![在这里插入图片描述](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/ad4b94a67d9746b1826312516b712dae~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzIxMjA3NDIwNDUy:q75.awebp?rk3s=f64ab15b&x-expires=1771744217&x-signature=5uSj%2Ff3c9y36MCInOmE0vlo%2FHMg%3D)  
 登录成功:


![在这里插入图片描述](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/c53db8275e544d2caac22910dfec7226~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzIxMjA3NDIwNDUy:q75.awebp?rk3s=f64ab15b&x-expires=1771744217&x-signature=ezicImK%2BI3ChkoVkGmhCwGHkDgY%3D)


## 2.SpringBoot集成


[Java Quickstart Guide]( ) https://min.io/docs/minio/linux/developers/java/minio-java.html#minio-java-quickstart


[Java SDK]( ) https://github.com/minio/minio-java/tree/release


![在这里插入图片描述](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/02098c6334144c759c636e00642125ea~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzIxMjA3NDIwNDUy:q75.awebp?rk3s=f64ab15b&x-expires=1771744217&x-signature=MwL0qjlxWyO8deorIkLrbGN%2BpVs%3D)


### 2.1 依赖及配置



io.minio minio 8.5.5

在`Minio Console`上生成的两个 Key:


![在这里插入图片描述](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/2b931d5de4d145db9234c1baf7c56636~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzIxMjA3NDIwNDUy:q75.awebp?rk3s=f64ab15b&x-expires=1771744217&x-signature=ZQy1R9xV4fwk2mu4119RHIsauzY%3D)


![在这里插入图片描述](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/f7cb2da1c5724b7e9e672057bc28f5ba~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzIxMjA3NDIwNDUy:q75.awebp?rk3s=f64ab15b&x-expires=1771744217&x-signature=qHoz1q52SFxrYeAmbSMNpECZQQY%3D)



{ "accessKey": "SllF5SkIozb1n0b1D84M", "api": "s3v4", "path": "auto", "secretKey": "ZQSiCm3UDST1Q5lL1sImpOUNKIQSv6qZGucB4ku0", "url": "http://tcloud:9090/api/v1/service-account-credentials" }


yml配置:



minio: url: http://tcloud:9000 accessKey: SllF5SkIozb1n0b1D84M secretKey: ZQSiCm3UDST1Q5lL1sImpOUNKIQSv6qZGucB4ku0 bucketName: tcloud-minio


### 2.2 代码


Minio配置类:



@Configuration @ConfigurationProperties(prefix = "minio") @Data public class MinioConfig { private String url; private String accessKey; private String secretKey; private String bucketName; }


Minio工具类:



@Slf4j @Component public class MinioUtil {

private MinioClient minioClient;

@Resource
private FileSystemConfig fileSystemConfig;

@Resource
private MinioConfig minioConfig;

private String bucketName;

@PostConstruct
private void connectToServer() {
    if (fileSystemConfig.isMinioEnable()) {
        // 初始化 MinioClient
        minioClient = MinioClient.builder()
                .endpoint(minioConfig.getUrl())
                .credentials(minioConfig.getAccessKey(), minioConfig.getSecretKey())
                .build();
        // 检测 bucket 是否存在
        bucketName = minioConfig.getBucketName();
        bucketExists(bucketName);
    }
}

/\*\*

* 根据 bucketName 检测是否存在 不存在则创建 * * @param bucketName 名称 */ public void bucketExists(String bucketName) { try { boolean found = minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build()); if (!found) { minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build()); } } catch (Exception e) { log.error("bucketExists Failed!"); e.printStackTrace(); } }

public void fileUploader(String objectName, String filePath) {
    try {
        UploadObjectArgs uploadObjectArgs = UploadObjectArgs.builder()
                .bucket(bucketName)
                .object(objectName)
                .filename(filePath)
                .build();