【异常解决】java程序连接MinIO报错The request signature we calculated does not match the signature you provided.

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 【异常解决】java程序连接MinIO报错The request signature we calculated does not match the signature you provided.

更多ruoyi-nbcio功能请看演示系统

gitee源代码地址

前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio

演示地址:RuoYi-Nbcio后台管理系统

      用java程序上传minio文件时候出现下面前端报上面的错误

      创建Bucket失败, 请核对配置信息:[The request signature we calculated does not match the signature you provided. Check your key and signing method. (Service: Amazon S3; Status Code: 403; Error Code: SignatureDoesNotMatch; Request ID: 17997C8E8553FD5A; S3 Extended Request ID: f295cb55-b4ca-4821-a685-982f66bda3e9; Proxy: null)]

后端报下面的错误

2023-11-21 08:41:25[0;39m [32m[XNIO-1 task-1][0;39m [1;31mERROR[0;39m [1;35mc.r.f.w.e.GlobalExceptionHandler
[0;39m - 请求地址'/system/oss/upload',发生未知异常.
com.ruoyi.oss.exception.OssException: 创建Bucket失败, 请核对配置信息:[The request signature we calculated does not match the signature you provided. Check your key and signing method. (Service: Amazon S3; Status Code: 403; Error Code: SignatureDoesNotMatch; Request ID: 17997C8E8553FD5A; S3 Extended Request ID: f295cb55-b4ca-4821-a685-982f66bda3e9; Proxy: null)]
  at com.ruoyi.oss.core.OssClient.createBucket(OssClient.java:92)
  at com.ruoyi.oss.core.OssClient.<init>(OssClient.java:71)
  at com.ruoyi.oss.factory.OssFactory.instance(OssFactory.java:50)
  at com.ruoyi.oss.factory.OssFactory.instance(OssFactory.java:36)
  at com.ruoyi.system.service.impl.SysOssServiceImpl.upload(SysOssServiceImpl.java:125)
  at com.ruoyi.system.service.impl.SysOssServiceImpl$$FastClassBySpringCGLIB$$8fa643de.invoke(<generated>)
  at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)

根据minio的官方网站,对于nginx需要做调整

为 MinIO 服务器配置 NGINX 代理 — MinIO Object Storage for Linux

upstream minio {
   least_conn;
   server minio-01.internal-domain.com;
   server minio-02.internal-domain.com;
   server minio-03.internal-domain.com;
   server minio-04.internal-domain.com;
}
server {
   listen       80;
   listen  [::]:80;
   server_name  minio.example.net;
   # Allow special characters in headers
   ignore_invalid_headers off;
   # Allow any size file to be uploaded.
   # Set to a value such as 1000m; to restrict file size to a specific value
   client_max_body_size 0;
   # Disable buffering
   proxy_buffering off;
   proxy_request_buffering off;
   location / {
      proxy_set_header Host $http_host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_connect_timeout 300;
      # Default is HTTP/1, keepalive is only enabled in HTTP/1.1
      proxy_http_version 1.1;
      proxy_set_header Connection "";
      chunked_transfer_encoding off;
      proxy_pass https://minio:9000/; # This uses the upstream directive definition to load balance
   }
   location /minio {
      proxy_set_header Host $http_host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_set_header X-NginX-Proxy true;
      # This is necessary to pass the correct IP to be hashed
      real_ip_header X-Real-IP;
      proxy_connect_timeout 300;
      # To support websockets in MinIO versions released after January 2023
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      chunked_transfer_encoding off;
      proxy_pass https://minio:9001/; # This uses the upstream directive definition to load balance and assumes a static Console port of 9001
   }
}


相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
1天前
|
Java Linux 测试技术
Java sdk连接fabric网络的谜之报错
Java sdk连接fabric网络的谜之报错
10 0
|
1天前
|
存储 安全 Java
告别低效!Java Queue与LinkedList的完美结合,让你的程序更高效!
【6月更文挑战第18天】Java的`LinkedList`作为`Queue`实现,提供高效并发队列。利用双向链表,它在头部和尾部操作有O(1)复杂度,适合大量数据和高并发。通过`Collections.synchronizedList`可使其线程安全,用于任务调度等场景,展现灵活性和高性能。
|
2天前
|
资源调度 关系型数据库 MySQL
实时计算 Flink版操作报错合集之遇到如下报错:java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer,该怎么办
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
5天前
|
Java
ElasticSearch启动报错 java version is an early-access build ,only use release builds【已解决】
ElasticSearch启动报错 java version is an early-access build ,only use release builds【已解决】
8 0
|
6天前
|
Linux
elasticsearch启动报错:unable to install syscall filter: java.lang.UnsupportedOperationException: seccomp
elasticsearch启动报错:unable to install syscall filter: java.lang.UnsupportedOperationException: seccomp
9 0
|
3天前
|
Java 调度
【Java基础】 线程状态转化
Java线程状态转化
17 2
|
5天前
|
缓存 NoSQL Java
Java高并发实战:利用线程池和Redis实现高效数据入库
Java高并发实战:利用线程池和Redis实现高效数据入库
22 0
|
7天前
|
安全 Java API
Java并发基础-启动和终止线程
Java并发基础-启动和终止线程
17 0
|
1天前
|
Java 程序员
Java多线程编程是指在一个进程中创建并运行多个线程,每个线程执行不同的任务,并行地工作,以达到提高效率的目的
【6月更文挑战第18天】Java多线程提升效率,通过synchronized关键字、Lock接口和原子变量实现同步互斥。synchronized控制共享资源访问,基于对象内置锁。Lock接口提供更灵活的锁管理,需手动解锁。原子变量类(如AtomicInteger)支持无锁的原子操作,减少性能影响。
16 3
|
2天前
|
数据采集 安全 算法
Java并发编程中的线程安全与性能优化
在Java编程中,多线程并发是提升程序性能的关键之一。本文将深入探讨Java中的线程安全性问题及其解决方案,并介绍如何通过性能优化技术提升多线程程序的效率。
9 3