You need to enable JavaScript to run this app. Spring Cloud AWS 2.3对接Localstack出现Unknown host错误如何解决
优惠活动
大模型
产品
解决方案
定价
更多

Spring Cloud AWS 2.3对接Localstack出现Unknown host错误如何解决

问题原因

AWS Java SDK默认采用虚拟主机式寻址访问S3资源,会自动将桶名拼接在Endpoint域名的前缀位置。你配置的S3 Endpoint是http://localhost:4566,最终拼接出来的访问地址就是http://mybucket.localhost:4566,本地DNS无法解析mybucket.localhost这个域名,因此抛出UnknownHostException异常。
你用S3浏览器可以正常访问,是因为这类工具默认采用路径式寻址,访问地址为http://localhost:4566/mybucket,不会触发域名解析问题。

解决方法

在Spring Boot配置文件中新增S3路径式寻址的开启配置即可:

cloud:
  aws:
    s3:
      endpoint: http://localhost:4566
      path-style-access-enabled: true # 新增该配置项,开启路径式寻址
    credentials:
      accessKey: test
      secretKey: test
    region:
      static: us-east-1
    stack:
      auto: false

开启该配置后,SDK会将桶名放在请求路径中,最终访问地址变为http://localhost:4566/mybucket/index.txt,和S3浏览器的访问逻辑一致,即可正常对接Localstack读取资源。

注意事项

该配置仅适用于本地对接Localstack/MinIO等自建S3兼容服务的场景,线上对接AWS公有云S3时无需开启,保持默认的虚拟主机寻址即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 11:57:02