2012-06-19 5 views
15

documento acerca de las opciones de URL:Configuración de nombre de dominio colocado de estilo (bucket.s3.amazonaws.com) del cubo con rieles y del Paperclip Paperclip

Usted puede optar por tener el nombre de dominio colocado al estilo de la cubeta (balde .s3.amazonaws.com) o estilo de ruta (s3.amazonaws.com/bucket).

¿Cómo se vería la configuración para que el nombre del depósito se coloque como estilo de dominio? No puedo forzar clip para generar URL como bucket.s3.amazonaws.com en lugar de s3.amazonaws.com/bucket.

+0

También he solucionado este problema, ¡me interesaría saber si lo resolvió! – michaelrshannon

Respuesta

1

Si cubo de nombre DNS es compatible entonces usted puede crear url .s3.amazonaws.com/objeto ....

pero si no es compatible con DNS entonces no se puede crear como desee.

Gracias

+0

De hecho, puedo ver la imagen cargada si accedo directamente a la url con bucket.s3.amazonaws.com/the-path-to-image. Simplemente no puedo hacer que el clip de papel genere urls de esta manera. – huoxito

14

Sólo hay que establecer de esta manera:

Paperclip::Attachment.default_options[:url] = ':s3_domain_url' 

O así:

Paperclip::Attachment.default_options.merge!(
    :url => ':s3_domain_url' 
) 
+1

Lo intenté. Pero devuelve este error Paperclip :: Errors :: InfiniteInterpolationError. Los documentos también me hacen pensar que sería la solución http://rubydoc.info/gems/paperclip/Paperclip/Storage/S3. Pero no está funcionando. – huoxito

+24

También debe definir la opción ': path' con': url', porque la predeterminada incluye '": url "' que causa la excepción 'Paperclip :: Errors :: InfiniteInterpolationError'. El error Paperclip corrige automáticamente la opción ': path' para el almacenamiento en S3 ... a menos que use un: s3 _ * _ url en la interpolación de': url' (sí, esto es un error). Use esto por ejemplo: '" /: class /: attachment /: id_partition /: style /: filename '"'. –

+2

@JulienPortalier, al final, hay una cita errónea al respecto, que me echó por un par de horas. La configuración correcta es: ': path =>" /: class /: attachment /: id_partition /: style /: filename "' –

4

Añadir :url y :path a los Paperclip opciones por defecto en su application.rb o environment.rb

config.paperclip_defaults = { 
    storage: :s3, 
    s3_credentials: { 
    bucket: ENV['MY_S3_BUCKET_NAME'], 
    access_key_id: ENV['AWS_ACCESS_KEY_ID'], 
    secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'] 
    }, 
    url: ':s3_domain_url',          # ADD THIS 
    path: '/:class/:attachment/:id_partition/:style/:filename' # ADD THIS 
} 
Cuestiones relacionadas