所以我按照本教程: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 上的凭据匹配。
任何帮助都会得到极大的赞赏。
添加region
和s3_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'
它解决了我的问题。