tutorial thoughtbot rails active ruby-on-rails ruby-on-rails-3 paperclip

ruby-on-rails - rails - thoughtbot github



¿Es posible configurar Paperclip para producir urls HTTPS? (2)

Estoy usando Paperclip para administrar las imágenes subidas por el usuario en un sitio que se sirve completamente en HTTPS. Para evitar las tontas advertencias de seguridad en IE7 / IE8, también debo publicar estas imágenes a través de SSL. Normalmente renderizo mis imágenes usando algo como lo siguiente:

<%= image_tag @product.image.url(:large) %>

dónde

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"

y la imagen URL producida es algo así como:

http://s3.amazonaws.com/media.example.com/images/6/large/image123.JPG

¿Hay una opción mágica Paperclip para cambiar esto a:

https://s3.amazonaws.com/media.example.com/images/6/large/image123.JPG


Para actualizar su código solo diga, agregue: s3_protocol de la siguiente manera:

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"


Simplemente necesita agregar:

:s3_protocol => :https

Esto está cubierto en la documentación .

Hay algunas opciones específicas de S3 para has_attached_file:
...

  • s3_protocol : el protocolo para las URL generadas a sus activos S3. Puede ser ''http'' o ''https''. El valor predeterminado es ''http'' cuando sus: s3_permissions son: public_read (el valor predeterminado) y ''https'' cuando su: s3_permissions es cualquier otra cosa.