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

Rails 6上传图片至AWS S3报getaddrinfo名称或服务未知错误如何解决

问题排查步骤

SocketError: getaddrinfo: Name or service not known本质是网络域名解析失败,程序无法将需要访问的服务域名解析为可用IP,按照以下顺序排查即可:

  • 首先验证EC2实例基础DNS能力
    在EC2实例终端执行命令nslookup s3.ap-northeast-1.amazonaws.com,确认可以正常解析到IP地址。如果解析失败,先检查VPC配置是否开启了enableDnsSupport和enableDnsHostnames两个参数,同时确认网络ACL、安全组没有拦截UDP 53端口的DNS请求。
  • 核对S3相关配置正确性
    1. 确认环境变量里的AWS_S3_BUCKET值和实际存在的S3桶名称完全一致,且该桶确实部署在ap-northeast-1区域
    2. 检查AWS SDK初始化逻辑,确认你已经将config.x.s3.region的配置值正确传给了SDK初始化参数,遗漏region配置会导致SDK默认请求us-east-1区域的S3端点,引发解析错误
    3. 如果你使用VPC端点访问S3,需要在配置中新增config.x.s3.endpoint参数,填入对应的VPC端点地址,否则会走公网S3域名解析
  • 检查ClamAV服务配置
    错误栈明确指向clamav_service.rb:4:in 'initialize',优先检查该文件的初始化逻辑:确认你没有将S3相关配置错误赋值给ClamAV的服务连接地址,ClamAV服务地址配置错误也会直接触发域名解析失败报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 06:54:09