当前位置: 首页 > 网络应用技术

Springboot集成了Minio的完整版本(必须在坑中看到)

时间:2023-03-06 17:45:23 网络应用技术

  在本文中,我们使用Springboot整合Minio。在这里,我们不直接使用其启动器,因为Maven仓库中只有两个版本,并且不被广泛使用。在这里我们可以自己编写一个起动器,并且可以直接引用其他物品。

  让我们先谈谈一个坑。Minio的中文文档版本与最新版本完全不匹配。对于英语官方网站,我一直无法访问它。我不知道我的朋友是否遇到了同样的问题。

  有关Minio的建立,请参阅我以前的文章:在CentOS7环境中创建Minio步骤详细教程

  没什么可说的,请输入主题。

  我使用版本:

  这里有一个坑。最初,我使用了最新的8.3.0版本。写所有代码时,我发现该错误的启动:

  我认为这是OKHTTP的版本或软件包重复问题。它被修改了,发现它没有用。最终解决方案是将Minio的版本减少到8.2.1。您认识的朋友可以尝试减少版本。

  我们需要准备以下内容。配置文件中的配置yaml是Minio服务地址,用户名,密码,桶名:

  另一方面,在弹簧上传文件上设置最大限制。如果仍然不好,请考虑是否是网关,还是仍需要配置Nginx。我在最终配置文件中给出100m的大小:

  这里的工作需要两个配置类,这是读取YAML配置的属性配置;另一个是针对弹簧容器的初始化小型选手:

  直接为其他服务提供简单的工具类,包括上传和下载:

  关于上面下载文件的返回值,我们的前端均匀返回。如果其他项目想使用它,我们可以自己修改它,直接响应body下载等。在此,我主要是指如何上传小型符号,只需下载文件即可。

  我们使用Springboot进行了集成的Knife4J,并直接通过网关接受了接口文档,以及Postman。我提供了以下简单的接口进行测试。

  接口页面上传文档以查看:

  一个坑来了,发现退货成功,文件名。但是Minio控制台上没有数据吗?

  乍一看,我报告了一个错误,这么长:

  原因是什么?因为我的Minio是群集模式,所以我使用nginx加载,并且在这里报告错误。在我的文章中提到的上一篇文章中,错误的NGINX配置以及如何构建环境。

  此处的单个节点的配置立即很好。从100,000到负载端口再到9000个单节点端口,之后还可以。

  当Nginx反向代理重新发布时,这个问题与携带的标头有关。当Minio检查签名是否有效时,我们必须从HTTP标头获得主机,并且我们在这里没有必要的处理标头。因此,我们需要添加以下配置:

  完整的NGINX配置如下:

  再次上传测试,成功:

  到目前为止,它已经完成!请不要忘记配置Spring.factories。