SpringBoot集成Minio(简单使用)

前言

1.什么是Minio?
MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。(我的理解就是对象存储服务。跟fastdfs很像,有服务端和客户端)

  1. docker安装Minio(别问我为什么用docker。两个字简单方便)
#拉取镜像
docker pull minio
#拉取镜像
docker run 
-p 9001:9000 -p 9090:9090  # 第一个端口是服务端口,第二个是客户端(9001是宿主机端口,9000是容器内部端口)
--net=host  #表示容器和宿主机共享一个ip
--name minio #容器名称
-d --restart=always  #自启动
-e "MINIO_ACCESS_KEY=minio"  #客户端账号(有点像Mysql的用户密码)
-e "MINIO_REGION=cn-north-1" 
-e "TZ=Asia/Beijing"  #设置容器时区(不设置会报错)
-e "MINIO_SECRET_KEY=minio123456" #客户端密码 (密码必须不得少于8位不然启动不了) 
-v /minio/data:/data  #挂载目录将/minio/data挂载到容器的/data目录,防止数据丢失
-v /minio/config:/root/.minio  minio/minio server /data 
--console-address ":9090" -address ":9001"

没有设置时区时会报错
error occurred
ErrorResponse(code = AccessDenied, message = Access denied, bucketName = bucket, objectName = null, resource = /bucket, requestId = null, hostId = null)
request={method=HEAD, url=http://192.168.186.128:9090/bucket, headers=Host: 192.168.186.128:9090
Accept-Encoding: identity
User-Agent: MinIO (amd64; amd64) minio-java/2.0.0
Content-MD5: 1B2M2Y8AsgTpgAmY7PhCfg==
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
x-amz-date: 20220126T034536Z
Authorization: AWS4-HMAC-SHA256 Credential=REDACTED/20220126/us-east-1/s3/aws4_request, SignedHeaders=accept-encoding;content-md5;host;x-amz-content-sha256;x-amz-date, Signature=REDACTED
}
response={code=403, headers=Date: Wed, 26 Jan 2022 03:45:36 GMT
Content-Length: 209
Content-Type: text/xml; charset=utf-8
Connection: close
}
参考解决链接
2. 启动成功后访问http://ip:9090,进入控制台页面
在这里插入图片描述
用户密码就是上面启动命令里的账号密码
在这里插入图片描述
Buckets:我的理解就是一个打的文件盘,而下面的project和file是一个个文件夹,objects就是文件个数
3. SpringBoot简单使用

#pom文件
<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!-- 操作minio的java客户端-->
        <dependency>
            <groupId>io.minio</groupId>
            <artifactId>minio</artifactId>
            <version>8.5.2</version>
        </dependency>
        <!-- 操作minio的java客户端-->
        <dependency>
            <groupId>io.minio</groupId>
            <artifactId>minio</artifactId>
            <version>8.2.1</version>
        </dependency>
        <!--        jwt鉴权相应依赖-->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
        </dependency>
        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt-jackson</artifactId>
            <version>0.11.2</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
    </dependencies>
#yml文件
server:
  port: 8080
spring:
  servlet:
    multipart:
      max-file-size: 10MB
      max-request-size: 10MB

  #minio配置
  minio:
    access-key: minio #启动命令里的账号
    secret-key: minio123456 #启动命令里的地址
    url: http://192.168.32.211:9001  #访问地址
    bucket-name: project
#配置文件
@Data
@Configuration
@ConfigurationProperties(prefix = "spring.minio")
public class MinioConfig {
   
    private String accessKey;

    private String secretKey;

    private String url;

    private String bucketName;

    @Bean
    public MinioClient minioClient(){
   
        return MinioClient.builder()
                .region("cn-north-1")
                .endpoint(url)
                .credentials(accessKey,secretKey)
                .build();
    }
}
#工具类
package com.example.producerserver.util;

import com.example.producerserver
springboot集成minio使用步骤如下: 1. 配置文件桶权限:可以在配置文件中设置minio的桶权限,包括读、写、删除等操作。可以根据具体需求进行配置。 2. 引入minio客户端依赖:在项目的pom.xml文件中添加minio客户端的依赖,以便在项目中使用minio的功能。 3. 配置文件修改:在项目的配置文件中添加minio的相关配置,包括minio服务器的地址、端口、用户名、密码等信息。 4. 定义minio配置类:创建一个配置类,用于将配置文件中的minio配置属性注入到该类中,方便后续使用。 5. 封装MinioClient:使用创建的minio配置类,创建一个MinioClient对象,用于与minio服务器进行交互。 6. HTTP接口实例:根据业务需求,编写相应的HTTP接口,使用MinioClient对象进行minio的相关操作,如上传文件、下载文件、创建桶等。 7. 总结:根据项目的具体情况,总结集成minio使用体验和效果,并进行必要的优化和调整。 以上是springboot集成minio的基本步骤和流程,通过配置文件和代码的配合,可以实现对minio的灵活使用。可以根据具体的需求进行相应的扩展和定制。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [springboot集成minio客户端](https://blog.csdn.net/water1209/article/details/124241782)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [springboot集成Minio](https://blog.csdn.net/AYANBAO/article/details/130031830)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值