SpringBoot集成MinIO依赖冲突问题

场景一:

        使用minio8.3.0版本的依赖,报下列异常:

An attempt was made to call a method that does not exist. The attempt was made from the following location:

    io.minio.S3Base.<clinit>(S3Base.java:105)

The following method did not exist:

    okhttp3.RequestBody.create([BLokhttp3/MediaType;)Lokhttp3/RequestBody;

The method's class, okhttp3.RequestBody, is available from the following locations:

    jar:file:/D:/repository/com/squareup/okhttp3/okhttp/3.14.9/okhttp-3.14.9.jar!/okhttp3/RequestBody.class

The class hierarchy was loaded from the following locations:

    okhttp3.RequestBody: file:/D:/repository/com/squareup/okhttp3/okhttp/3.14.9/okhttp-3.14.9.jar


Action:

Correct the classpath of your application so that it contains a single, compatible version of okhttp3.RequestBody

        根据上面的异常信息分析,可能是okhttp依赖冲突造成的服务启动失败,因为minio底层要依赖okhttp进行和minio服务端进行通信,由于项目中多个依赖底层都依赖了不同版本的okhttp,导致这里的okhttp因版本不同,某些方法不可用,尝试降级minio的版本,如下:

<dependency>
    <groupId>io.minio</groupId>
    <artifactId>minio</artifactId>
    <version>8.2.1</version>
</dependency>

         降低了minio的版本之后,服务可以正常启动,不再报错,但是我在本地重新启动一个服务使用如下的依赖,8.3.0版本的minio依赖是可以正常启动的,但是该服务仅仅只有minio相关依赖如下:

<dependency>
    <groupId>io.minio</groupId>
    <artifactId>minio</artifactId>
    <version>8.3.0</version>
</dependency>

<dependency>
    <groupId>me.tongfei</groupId>
    <artifactId>progressbar</artifactId>
    <version>0.5.3</version>
</dependency>

<dependency>
    <groupId>com.squareup.okhttp3</groupId>
    <artifactId>okhttp</artifactId>
    <version>4.8.1</version>
</dependency>

         总结:最终对比发现,用上述依赖的时候,8.3.0版本的依赖是可以正常启动的,说明原服务中的okhttp版本太低导致和8.3.0版本的minio不兼容,导致启动失败

场景二:

        当上传文件过大,导致服务报错异常,需要添加如下配置:

spring:
   servlet:
      multipart:
      max-file-size: 100MB
      max-request-size: 100MB

         上面的配置就是修改默认上传文件大小,默认是1MB

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 ]
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值