Para evitar hot-linking, S3 bandwidth leeching, etc. Me gustaría hacer que mi depósito sea privado y servir los archivos a través de una aplicación de Rails. El concepto en general suena muy fácil, pero no estoy del todo seguro de qué enfoque sería el mejor para la situación.Cómo proxy de archivos de S3 a través de la aplicación de rieles para evitar la sanguijuela?
Estoy usando clip para la gestión general de activos. ¿Hay alguna forma de incorporar este tipo de proxy?
En general, puedo analizar fácilmente las URL del clip y señalarlas a mi propio controlador. ¿Qué debería pasar desde este punto? ¿Debo simplemente usar Net :: HTTP para descargar la imagen y luego servirla con send_data? En el medio quiero registrar el referer y establecer los encabezados de Control-Cache adecuados, ya que tengo un proxy inverso en frente de la aplicación. Es Net :: HTTP + send_data de manera razonable en este caso?
¿Quizás ideas completas son realmente malas por alguna razón que no conozco en este momento? Yo en general creo que reveling los enlaces directos a S3 cubo pública es peligrosa y el rendimiento en algunos problemas graves en el caso de sanguijuela/caliente que une ...
Actualización:
Si tiene alguna otra idea que puede reduzca la factura de S3 y evite el ligamiento de enlaces calientes de todos modos, comparta, incluso si no están directamente relacionados con los rieles.
¿Actualmente estás teniendo un problema con leeching? Sería reacio a hacer algo que ralentizará drásticamente mi aplicación, solo para resolver un problema que pueda tener en el futuro. – mikerobi
No se trata solo de resolver un posible problema. Simplemente no quiero despertarme un día con una abrumadora factura de S3, que no puedo pagar ... No estoy tan seguro, si esto ralentizará la aplicación "dramáticamente", cuando los activos se mantendrán en memcache/reverse apoderado. – mdrozdziel