2012-03-31 12 views
3

私は私のモデルでは:Railsのクリップ画像amazon aws s3の宝石、どのように画像のURLを変更するには?

has_attached_file :image, 
      :storage => :s3, 
      :styles => { :original => ["300x250>", :png], :small => ["165x138>", :png], :mini => ["120x120>", :png] }, 
      :path => 'images/vind/:style/:id/:basename.:extension', 
      :url => 'images/vind/:style/:id/:basename.png', 
      :bucket => 'konkurrencerher', 
      :s3_credentials => { 
      :access_key_id => 'x', 
      :secret_access_key => 'x' 
    } 

問題は、Amazon S3のホスト名は、ビュー内のURLにそこに追加されただけのことです。

私はこの解決策を持っているが、少しは醜いです:

<%= image_tag(kon.photo.image.url(:small).gsub("http://s3.amazonaws.com/konkurrencerher", ""), :class => 'koni') %> 

しかし、どのようにそれは、Amazon S3のホスト名なしで、モデル内の画像のURLを定義することは可能でしょうか?

Paperclip.interpolates(:s3_path_url) { |attachment, style| 
    "#{(attachment.path).gsub("images/", "")}" 
} 

そしてURLは次のようになります:

:url => ':s3_path_url' 

これは、はるかに優れたソリューションです。

答えて

0

私のソリューションは、これでマップ初期化子内のファイルを作成しました

2

Paperclip::Storage::S3、特に:s3_host_aliasをご覧ください。あなたは、次の追加オプション

:url => ':s3_alias_url', 
:s3_host_alias => "example.domain.net" 

であなたのhas_attached_fileを設定しようとすることができ

は、この情報がお役に立てば幸いです。

関連する問題