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

Minio外网访问内网上传的预签名url的方法以及报错原因

自己个人的经验总结:

当其他技术配置检查多次都无误,但就是不行的时候,要考虑低级错误的可能:

比如本次 就是 之前 存储桶 的名字改过,但是只改了代码里 获取预签名url的,上传的没有改

导致的结果就是url根本是错的,因为存储桶里没有那个图片对象,它们都在旧的存储桶里

---------------------------------------------------------------------------------------------------------------------

需求:

javaSpring项目 与Minio部署在同一台服务器

外网只开放了一个端口比如18888映射到内网8888,此端口自然默认是给前端项目

Minio上传设置的Endpoint为服务器内网地址如 192.168.0.3:9000,自然获取 预签名url 返回的也是192开头的链接,在内网可以显示图片,到外网不行

尝试用nginx进行转发,假设筒名称为bk1,则链接必然在端口号后为/bk1/,所以设置

server {
listen 8888;
server_name localhost;
client_max_body_size 3000m;
#必须 防止请求头丢失
underscores_in_headers on;location / {
root /home/webapp/dist;
index index.html;
}location /donghai7s/ {
proxy_read_timeout 600s;proxy_pass http://127.0.0.1:9000; # 注意这里,我们代理到本机的19000端口,即MinIO服务
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}}

这样是不行的,因为预签名url会校验请求头,完全相同才可以,这里转发后为http://127.0.0.1:9000,与设置的Endpoint 192.168.0.3:9000不同,所以要改成一致的.

第二:返回的url因为是内网ip,不能直接用,需要改成外网

灵活的方式就是从前端获取项目ip和端口,进行替换:

如果只是简单项目,不涉及其他ip和端口,也可以后端返回之前替换

其他参考文章:

Nginx代理minIO图片路径实现公网图片访问_minio图片访问-CSDN博客

minio图片展示(minio图片上传地址为内网,展示时为外网)_minio 图片-CSDN博客

http://www.hskmm.com/?act=detail&tid=39727

相关文章:

  • vscode解决中文乱码
  • 【ESP32 在线语音】星火大模型
  • RT-Thread 之互斥量使用
  • 20232419 2025-2026-1 《网络与系统攻防技术》实验三实验报告
  • 语义文本理解 BERT - MKT
  • Rig 项目深度分析报告
  • FM-Fusion 利用rgbd相机 ram-GroundingDINO-sam 重建语义地图 - MKT
  • AI元人文构想系列:从战略能力到价值对话的文明之路
  • 事件日志查看Windows安装软件情况
  • RT-Thread之创建线程
  • cias_voice_plyer_handle.c 解析
  • 【CI130x 离在线】FreeRTOS的流缓冲(StreamBuffer)
  • 数据采集与融合技术作业1
  • RT-Thread Nano源码浅析
  • 关于SQLite - 世界上装机量最多的数据库
  • 《从 “被动听” 到 “主动学”:课堂听讲助力大学生思维成长》
  • 用AI批量生成产品视频!Python+Google Veo 3.1 API让电商转化率飙升
  • 模拟IIC与硬件IIIC哪个更常用?
  • 每日反思(2025_10_26)
  • 251019 NOIP 模拟赛 T2 | dp 及其优化、调整法最优解性质、数形结合
  • 小作业 14(2018 北京高考文科)
  • 10.23总结
  • 10.24总结
  • 第六章习题
  • 速通 花卉鉴赏 短文
  • Agent常见模式 - 智慧园区
  • 概率论测试
  • 2025.10.26总结
  • AI元人文:从战略能力到价值对话的实现框架
  • react-router7.9.4使用