为prod设置回形针默认值(使用S3),主机名重复

时间:2015-09-01 05:36:47

标签: ruby-on-rails amazon-s3 paperclip

我的问题实际上是两件事: 1.为什么要将我的应用名称放两次? 2.为什么我不能改变文件路径?

在制作中,当我将s3_host_name设置为“s3.amazonaws.com”时,图片上传工作,但它不会在视图上显示图像。

当我将它设置为“myappname.s3.amazonaws.com”时它会转到此处:     http://myappname.s3.amazonaws.com/myappname/properties/avatars/4/medium.jpg

哪个仍然不正确,因为路径应该是:     http://myappname.s3.amazonaws.com/properties/avatars/4/medium.jpg

我也尝试过不为宝石设置版本,并尝试使用aws v2。

所有s3权限都设置为也可以使用,因此当手动在视图上放置正确的路径时,图像就会显示出来。

宝石:

gem "paperclip", '~> 4.3'
gem 'aws-sdk', '1.63.0' #(also tried unspecified and 2)

Production.rb:

 config.paperclip_defaults = {
    :storage => :s3,
    :s3_host_name => "myappname.s3.amazonaws.com",
    :path => "/properties/avatars/:id/:style.:extension",
    :region => 'us-west-1',
    :s3_credentials => {
      :bucket => ENV['S3_BUCKET_NAME'],
      :access_key_id => ENV['AWS_ACCESS_KEY_ID'],
      :secret_access_key => ENV['AWS_SECRET_ACCESS_KEY']
    }
  }

这是错误(heroku日志):

OpenSSL::SSL::SSLError (hostname "myappname.myappname.s3.amazonaws.com"

设置=

:s3_host_name => "myappname.s3.amazonaws.com"

但是

:s3_host_name => "s3.amazonaws.com"

将其设置为's3.amazonaws.com'

我的问题实际上是两件事: 1.为什么要将我的应用名称放两次? 2.为什么我不能改变文件路径?

1 个答案:

答案 0 :(得分:0)

Just set to this:

 config.paperclip_defaults = {
    :storage => :s3,
    :s3_host_name => 's3-us-west-1.amazonaws.com',
    :s3_credentials => {
      :bucket => ENV['S3_BUCKET_NAME'],
      :access_key_id => ENV['AWS_ACCESS_KEY_ID'],
      :secret_access_key => ENV['AWS_SECRET_ACCESS_KEY']
    }
  }