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

AWS预签名URL格式异常引发ERR_NAME_NOT_RESOLVED问题求助

问题根源与解决方案

首先明确:这个错误完全是预签名URL的格式畸形导致的,和SDK版本、防火墙/DNS配置无关。

看你生成的URL,核心错误点集中在域名和凭证参数部分:

  • 域名部分:s3./%27ap-south-1%27;.amazonaws.com 完全不符合S3的域名规则,正确格式应该是 bucket-name.s3.ap-south-1.amazonaws.com(或对应访问模式的变体),这里多了单引号的URL编码(%27)、分号,还有s3后面多余的点,直接导致DNS无法解析这个无效域名,所以触发ERR_NAME_NOT_RESOLVED。
  • 凭证参数:X-Amz-Credential=%27K0000000000000000000000000000009us-east-1%27%3B%2Fs3%2Faws4_request 里也混进了单引号和分号,正常凭证应该是AKIAXXXXXXXXXXXX/日期/区域/s3/aws4_request的格式,这说明你的代码在处理区域或者凭证参数时存在明显错误。

针对AWS SDK v2的排查方向:

  • 检查S3客户端的初始化代码,是不是给region参数加了多余的单引号或分号?比如错误写法:new AWS.S3({ region: "'ap-south-1';" }),正确应该是new AWS.S3({ region: "ap-south-1" })。
  • 检查调用getSignedUrl时的配置,确认没有手动拼接区域、凭证等参数,所有参数都应该通过SDK的API正确传递,不要自己拼接URL的各个部分。
  • 确认你的AWS凭证(Access Key)没有被错误地带上多余字符,比如复制时不小心带了引号。

修复这些代码里的参数错误后,生成的预签名URL应该会是类似这种正确格式:

https://bucket-name.s3.ap-south-1.amazonaws.com/6356661.png?Content-Type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAXXXXXXXXXXXX/20240609/ap-south-1/s3/aws4_request&X-Amz-Date=20240609T110931Z&X-Amz-Expires=3600&X-Amz-Signature=...&X-Amz-SignedHeaders=host

此时DNS解析和URL有效性都能恢复正常,不用提前升级到SDK v3。

内容的提问来源于stack exchange,提问作者Steve Maxwell

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 18:05:02