Paperclipを使用して、完全にHTTPSで提供されているサイトでユーザーがアップロードした画像を管理しています。 IE7/IE8での馬鹿げたセキュリティ警告を回避するために、SSL経由でこれらの画像も提供する必要があります。私は通常、次のようなものを使用して画像をレンダリングします。
<%= image_tag @product.image.url(:large) %>
どこ
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"
生成される画像のURLは次のようになります。
http://s3.amazonaws.com/media.example.com/images/6/large/image123.JPG
これを次のように変更する魔法のペーパークリップオプションはありますか?
https://s3.amazonaws.com/media.example.com/images/6/large/image123.JPG
あなたは単に追加する必要があります:
:s3_protocol => :https
これはカバーされています ドキュメントで 。
Has_attached_fileにはS3固有のオプションがいくつかあります。
...
s3_protocol
:S3アセットに生成されたURLのプロトコル。 「http」または「https」のいずれかです。 :s3_permissionsが:public_read(デフォルト)の場合はデフォルトで「http」になり、:s3_permissionsがそれ以外の場合は「https」になります。
コードを更新するには、次のように: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"