Resulta que tengo un modelo con un campo FileField y otro campo asociado
a un usuario. El tema es que quiero que los ficheros sólo los puedan
descargar el usuario al que está asociado dicho fichero a a través del
modelo.
Como los ficheros no está recomendado que los "sirva" el Django, sino
directamente el servidor HTTP, en un caso lo había resuelto aprovechando
la API de mod_python, capturando los intentos de descarga de los
ficheros y consultando contra el Django si el fichero en cuestión lo
podía descargar el usuario que lo estaba intentando.
Pero ahora me estaba planteando si no habrá otra manera de hacerlo.
Aunque supongo que para eso sería necesario que fuera el Django quien
sirviera los ficheros ¿es eso tan mala idea realmente?
¿Cómo han resuelto ustedes casos similares?
¡Muchas gracias!
--
Un saludote..
--==@ Sergio @==--
Barraquito.net - http://www.barraquito.net
Más vale tarde que nunca :-)
2008/12/16 Sergio <barra...@gmail.com>:
> (...)
> Pero ahora me estaba planteando si no habrá otra manera de hacerlo.
> Aunque supongo que para eso sería necesario que fuera el Django quien
> sirviera los ficheros ¿es eso tan mala idea realmente?
>
> ¿Cómo han resuelto ustedes casos similares?
>
Hace poco he hecho eso mismo usando una cabecera que se llama
X-Sendfile. Funciona al menos en lighttpd y en Apache (instalando un
módulo). Con esta técnica tienes la seguridad controlada por una vista
de Django, pero la descarga la hace el propio servidor web, con el
consiguiente aumento en eficiencia.
http://blog.lighttpd.net/articles/2006/07/02/x-sendfile
Taluego,
--
Obstáculos es lo que ves cuando apartas la vista del objetivo.