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

配置AWS S3作为Rails Active Storage存储后Heroku返回503错误如何解决

解决方案

  • 配置Heroku环境变量
    本地使用的.env文件不会被Heroku默认读取,你需要手动在Heroku平台配置对应的环境变量,变量名需要和storage.yml中调用的ENV键完全一致:
    可通过Heroku CLI执行命令配置:

    heroku config:set ACCESS_KEY=你的AWS_ACCESS_KEY值 SECRET_ACCESS_KEY=你的AWS_SECRET_ACCESS_KEY值 S3_BUCKET=你的S3存储桶名称
    

    也可以在Heroku对应应用的后台设置页面,找到Config Vars板块手动添加三个变量。

  • 修正storage.yml语法错误
    你贴出的storage.yml配置片段最后一行末尾存在多余的反引号,会导致YAML解析失败,直接触发Rails启动崩溃,删除多余的反引号即可,修正后的配置参考:

    amazon:
      service: S3
      access_key_id: <%=ENV['ACCESS_KEY']%>
      secret_access_key: <%=ENV['SECRET_ACCESS_KEY']%>
      region: us-west-2
      bucket: <%=ENV['S3_BUCKET']%>
    
  • 检查依赖包分组
    确认Gemfile中的aws-sdk-s3没有被放在development或者test分组下,需要放在全局分组或production分组内,修改后执行bundle install更新Gemfile.lock再重新提交部署。

  • 排查完整报错日志
    如果完成以上操作后服务依然崩溃,可执行heroku logs --tail查看完整的启动日志,定位具体崩溃原因,常见后续问题包括S3区域配置和存储桶实际区域不匹配、AWS密钥缺少S3操作权限等。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 20:06:03