2009-08-04 16 views
5

Me preguntaba si alguien sabía de una manera que se podría gestionar el ancho de banda dentro de una aplicación rieles de alguna manera que no depende del servidor web. Por ejemplo, cada cuenta tiene un límite de ancho de banda. ¿Dentro y fuera del tráfico restringido resta de la asignación mensual?gestión de ancho de banda con rieles?

+0

supongo que esto va a estar relacionado con el análisis de los archivos de registro, se ve como Splunk podría hacerlo con seguridad, pero necesito algo en un presupuesto. Production Log File Analyzer joya tal vez? – bwizzy

Respuesta

4

Una opción sería añadir un after_filter en application.rb (para que se aplique a todas las acciones) y hacer lo siguiente:

def store_bandwidth_usage 
    response_size = response.body.size 
    # Assuming the User model has a bandwidth_usage attribute 
    @current_user.increment!(:bandwidth_usage, response_size) 
end 

Por supuesto, entonces se necesitaría una before_filter el cual comprobó que un usuario no habían rebasado el ancho de banda asignado, de lo contrario se les debería denegar el acceso.

Tenga en cuenta que esto sólo se contará para las peticiones que llegan al servidor de rieles, todas las solicitudes que se llenan por un servidor de aplicaciones (por ejemplo, imágenes) no se incluirán.

Cuestiones relacionadas