为产品设置回形针默认值(使用 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']
}
}
我的问题实际上是两件事: 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']
}
}