8

Acabo de configurar archivos cargados a Amazon S3 usando Rails 3 y Paperclip. Todo esto funciona increíblemente bien y está funcionando. Solo hay un pequeño detalle que me gustaría resolver. Por el momento, las urls son las urls de Amazon (es decir, comienzan http://s3.amazonaws.com) y me gustaría que comenzaran con mi dominio.Ocultando urls amazon al usar S3, Rails y Paperclip

Ya he agregado los registros CNAME necesarios a mi DNS y están funcionando bien para que pueda acceder a los archivos a través de un subdominio de mi dominio. El problema es que las URL generadas por paperclip comienzan con el dominio de Amazon. ¿Hay alguna manera fácil de cambiar la configuración del clip para evitar esto?

Saludos

Respuesta

5

Echa un vistazo a Paperclip::Storage::S3.

+4

Específicamente ': s3_alias_url' –

+2

Gracias por eso. Ya había echado un vistazo a esto y no pude hacerlo, pero después de que mi mensaje lo buscó nuevamente con renovado vigor y encontré una publicación de Grupos de Google que me solucionó el problema. Han publicado el enlace en caso de que alguien más se quede atrapado en la misma cosa. Animo amigos. https://groups.google.com/group/paperclip-plugin/browse_thread/thread/e1acd8339490438c?pli=1 – Addsy

+0

¿Quizás es una opción de DNS? – AnApprentice

2

Aquí es todo lo que necesita para ocultar las direcciones URL de Amazon S3 de sus activos:

  1. Nombre su cubo S3 después de que el alias de dominio que desea utilizar. Así que si quieres acceder a sus activos en http://assets.mysite.com/path/to/image.png entonces usted debe nombrar a su depósito de S3: assets.mysite.com

  2. Añadir un CNAME a los registros DNS para que assets.mysite.com es un alias de assets.mysite.com.s3.amazonaws.com (No incluya' .mysite. . com' en 'campo de nombre' del registro DNS)

  3. clip de configuración para utilizar su nuevo insetad alias de dominio de la ruta por defecto S3:

    has_attached_file :my_file, 
        ... 
        :url => ':s3_alias_url' 
        :s3_host_alias => 'assets.mysite.com', 
        ... 
    

Normalmente tengo diferentes cubos para desarrollo, montaje y producción, y solo uso el alias de dominio para el cubo de productos. Así que para asegurarse de que funciona en cada entorno, mi :url establecer menudo como esto:

:url => (ENV['USE_S3_ALIAS'] == 'TRUE' ? ':s3_alias_url' : ':s3_domain_url') 
Cuestiones relacionadas