当前位置: 首页 > news >正文

解决 MinIO 上传文件时报 S3 API Requests must be made to API port错误

在使用 MinIO 进行文件上传时,我遇到了一个比较坑的问题。错误日志如下:

io.minio.errors.InvalidResponseException: Non-XML response from server. Response code: 400, Content-Type: text/xml; charset=utf-8, body: <?xml version="1.0" encoding="UTF-8"?><Error><Code>InvalidArgument</Code><Message>S3 API Requests must be made to API port.</Message><RequestId>0</RequestId></Error>at io.minio.S3Base.execute(S3Base.java:577)at io.minio.S3Base.getRegion(S3Base.java:691)at io.minio.S3Base.execute(S3Base.java:464)at io.minio.S3Base.executeHead(S3Base.java:725)at io.minio.MinioClient.bucketExists(MinioClient.java:1135)at com.sky.service.impl.FileServiceImpl.upload(FileServiceImpl.java:31)at com.sky.controller.admin.FileUploadController.upload(FileUploadController.java:31)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

在这里插入图片描述


问题原因

S3 API 请求必须发送到 API 端口,而不是其他端口

在 MinIO 中有两类端口:

  • API 端口:用于 S3 协议的文件上传下载

  • Console(Web UI)端口:用于浏览器访问管理界面

如果在代码中配置了 Console 端口,MinIO 会直接拒绝请求,并返回这个错误

我的错误配置

检查项目的配置文件 application.yml,发现我写的是 9000 端口:

minio:  endpoint: http://127.0.0.1:9000  access-key: root  secret-key: 12345678  bucket-name: lease

9000 其实是 Web 控制台端口,不是 API 端口:

查找的正确端口

打开运行 MinIO 的终端,可以看到启动信息里明确写了 API 和 WebUI 的端口:

在这里插入图片描述

可以看到:

  • API 端口9005

  • WebUI 端口9000

解决方案

application.yml 中的端口改成 API 端口即可:

minio:  endpoint: http://127.0.0.1:9005  access-key: root  secret-key: 12345678  bucket-name: lease

修改配置后重新运行项目,文件上传成功 ✅:

在这里插入图片描述

http://www.lryc.cn/news/614786.html

相关文章:

  • Sklearn 机器学习 数据降维PCA 使用PCA算法
  • Java 之 设计模式
  • Python day38
  • SVM算法实战应用
  • 【感知机】感知机(perceptron)学习算法例题及详解
  • 政治社会时间线
  • 为什么输入 URL 后会显示页面?HTTP 协议的 “幕后操作”
  • JDK、eclipse的安装,配置JDK、Tomcat并使用eclipse创建项目
  • Cursor CLI 来了,准备 Build anything
  • latex基础
  • Vue 路由跳转
  • Redis数据组织方式
  • 第39周——训练自己的数据集
  • Vue 组件化开发
  • 零基础小白如何使用QGIS制作研究区地形区位图教程
  • SQL聚合函数:SUM与COUNT的区别
  • 算法训练之字符串
  • 04--模板初阶(了解)
  • 常见数据结构介绍(顺序表,单链表,双链表,单向循环链表,双向循环链表、内核链表、栈、队列、二叉树)
  • VMware使用NAT模式,使本机与虚拟机在不同的网络,并且虚拟机可以上网
  • VSCode 禁用更新检查的方法
  • C++归并排序
  • Flutter开发 Switch、SwitchListTile的基本使用
  • 机器学习概念1
  • 关于 Rust 异步(无栈协程)的相关疑问
  • 书生浦语第五期-L1G3-LMDeploy 课程
  • AI入门学习--如何对RAG测试
  • 讲一讲@ImportResource
  • 触觉导航新突破:Contactile 触觉传感器推动机器人 “零示教” 实现复杂曲面作业
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘transformers’问题