Rails 4:Heroku + 回形针 + s3 在生产中不起作用



所以我按照本教程:https://devcenter.heroku.com/articles/paperclip-s3

我设法将其部署到 Heroku,并且应用程序正在开发中。该应用程序在 Heroku 中运行,但当我尝试上传照片时。它给了我这个页面

很抱歉,出了点问题。

我尝试通过转到控制台并键入 heroku 日志来调试它,它给我以下错误:

heroku[router]: at=info method=POST path="/friends" host=s3friends.herokuapp.com request_id=4173ed9e-ed69-492c-b1b9-d98227ca678c fwd="98.207.140.59" dyno=web.1 连接=9ms 服务=2668ms 状态=500 字节=1754

生产.rb

config.paperclip_defaults = {
    :storage => :s3,
    :s3_credentials => {
      :bucket => ENV['S3_BUCKET_NAME'],
      :access_key_id => ENV['AWS_ACCESS_KEY_ID'],
      :secret_access_key => ENV['AWS_SECRET_ACCESS_KEY']
    }
  }

宝石文件:

gem 'aws-sdk'
gem 'rails', '4.2.5'
group :production do
    gem 'pg'
end

我还确保我的 heroku 配置上的凭据与我的 s3 上的凭据匹配。

任何帮助都会得到极大的赞赏。

添加regions3_host_name

config.paperclip_defaults = {
    storage: :s3,
    s3_credentials: {
      bucket: ENV["S3_BUCKET_NAME"],
      access_key_id: ENV["AWS_ACCESS_KEY_ID"],
      secret_access_key: ENV["AWS_SECRET_ACCESS_KEY"],
      s3_region: ENV["S3_REGION"],
      s3_host_name: ENV["S3_HOST_NAME"]
    }

S3_REGION="欧盟中部-1"S3_HOST_NAME="s3.eu-central-1.amazonaws.com"

区域和终端节点:http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region

使用gem "aws-sdk", "~> 2.0"

对于那些面临相同问题的人,我通过将:bucket => ENV['S3_BUCKET_NAME'],重命名为:bucket => ENV['AWS_BUCKET'],来解决此问题

以及将gem 'aws-sdk'降级为宝石'aws-sdk', '~> 1.61.0'

它解决了我的问题。

最新更新