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

Setting paperclip defaults for prod (using S3), host name duplicates

我的问题实际上是两件事: 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

我也尝试过不为 gems 设置版本,并尝试使用 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. 为什么我不能更改文件路径?

只需设置为:

 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']
    }
  }