cai*_*nne 58 ruby-on-rails amazon-s3 paperclip ruby-on-rails-3
我正在使用Paperclip管理完全在HTTPS下提供服务的网站上的用户上传图像.为了避免IE7/IE8上的愚蠢安全警告,我还需要通过SSL提供这些图像.我通常使用以下内容渲染我的图像:
<%= image_tag @product.image.url(:large) %>
Run Code Online (Sandbox Code Playgroud)
哪里
class Product < ActiveRecord::Base
has_attached_file :image,
:styles => {
:large => {:geometry => "616x450#"}
},
:storage => :s3,
:s3_credentials => {:access_key_id => "xxx", :secret_access_key => "xxx"},
:path => ":attachment/:id/:style/:basename.:extension",
:bucket => CONFIG['s3_media_bucket'],
:default_url => "/assets/image_missing.png"
Run Code Online (Sandbox Code Playgroud)
并且生成的图像URL类似于:
http://s3.amazonaws.com/media.example.com/images/6/large/image123.JPG
Run Code Online (Sandbox Code Playgroud)
是否有魔术回形针选项将其更改为:
https://s3.amazonaws.com/media.example.com/images/6/large/image123.JPG
Run Code Online (Sandbox Code Playgroud)
Jor*_*ing 100
你只需要添加:
:s3_protocol => :https
Run Code Online (Sandbox Code Playgroud)
这在文档中有所涉及.
has_attached_file有一些特定于S3的选项:
...
s3_protocol:为S3资产生成的URL的协议.可以是'http'或'https'.当你的:s3_permissions是:public_read(默认值)时默认为'http',当你的:s3_permissions是其他任何东西时,默认为'https'.
小智 24
要更新您的代码,请添加:s3_protocol,如下所示:
class Product < ActiveRecord::Base
has_attached_file :image,
:styles => {
:large => {:geometry => "616x450#"}
},
:storage => :s3,
:s3_credentials => {:access_key_id => "xxx", :secret_access_key => "xxx"},
:s3_protocol => :https,
:path => ":attachment/:id/:style/:basename.:extension",
:bucket => CONFIG['s3_media_bucket'],
:default_url => "/assets/image_missing.png"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11304 次 |
| 最近记录: |