You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MinIO上传含特殊字符文件名返回HTTP 403签名不匹配问题咨询

MinIO 403签名不匹配问题原因分析

根因定位

该错误并非MinIO逻辑异常,而是MinIO的S3签名校验逻辑与.NET WebClient默认的URL编码规则对特殊字符的处理不一致,核心触发点是对象名中的+符号:

  • .NET WebClient默认编码逻辑中,仅会将空格编码为+,不会对原生存在于文件名中的+做转义处理(不会转为%2B),因此上传old_me_bold+19(1).jpg时,请求路径中直接携带+字符
  • MinIO的签名校验阶段,会将URL路径中的+解析为空格,而非保留为原字符,导致两端计算签名时使用的对象名字符串不一致

具体校验逻辑偏差

MinIO在实现S3兼容的V2/V4签名校验时,对URL路径的解码规则和S3官方规范存在差异:

S3官方规范明确要求:签名计算时需要严格保留原始资源路径的编码后字符,+只有出现在Query参数中时才会被解析为空格,出现在URL路径段时需视为普通字符保留

你收到的提示The request signature we calculated does not match the signature you provided. Check your key and signing method就是因为签名计算的原始输入不一致:WebClient端使用原文件名old_me_bold+19(1).jpg计算签名,MinIO端将+替换为空格后用old_me_bold 19(1).jpg计算签名,最终结果不匹配触发403错误。

验证方案

手动将文件名中的+转义为%2B后再发起上传请求,即可正常上传成功,可直接验证该问题的触发原因。


内容的提问来源于stack exchange,提问作者Pepe Marino

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 20:18:03