Domanda

Ok, so che servire i file multimediali attraverso Django è un non è raccomandato . Tuttavia, sono in una situazione in cui mi piacerebbe servire i file "statici" usando il controllo di accesso a grana fine attraverso modelli Django.

Esempio : io voglio servire la mia libreria di film a me stesso attraverso il web. Sono spesso in viaggio e mi piacerebbe essere in grado di visualizzare qualsiasi dei miei film ovunque mi trovi, purché abbia accesso a internet. Così ho rip miei DVD, caricarli al mio server e costruire questa semplice applicazione Django, con una certa embeddable lettore video .

Per evitare ripercussioni legali, vorrei garantire che solo gli utenti connessi con le autorizzazioni appropriate (cioè me stesso e le persone che vivono nella stessa economia domestica, che può, come me, di accesso alle reali DVD a loro piacimento) , ma nega ad altri utenti (cioè le persone che hanno postato commenti sul mio blog) e restituisce un HTTP 404.

Ora, servendo questi file direttamente utilizzando Apache e mod_wsgi è piuttosto fastidioso perché quando una richiesta HTTP per i file multimediali (cioè http://video.mywebsite.com/my-favorite-movie/) entra in gioco, ho bisogno di convalidare contro il mio database degli utenti che la persona all'altro capo ha il corretto permessi.

Domanda : possono I ottenere questo effetto senza di servire i file multimediali direttamente attraverso una vista Django? Quali sono le opzioni?

Una cosa che ho pensato è quello di scrivere un semplice script che prende un ID di sessione e slug di un video e restituisce un po 'di booleano che indica se l'utente può (o non può) l'accesso al file video. Quindi, in qualche modo richiesta mod_wsgi per eseguire questo script prima di accedere all'URL richiesto e restituiscono un HTTP 404 se lo script non è riuscita. Tuttavia, non ho la più pallida idea se questo è ancora possibile.

Modifica : inviare messaggi a questa domanda ha chiarito alcune delle mie idee per la ricerca e che ho incontrato di mod_python file wrapper di estensione . Qualcuno ha abbastanza esperienza con quella di convalidare che si tratta di una soluzione praticabile?

È stato utile?

Soluzione

Sì, è possibile collegare in autenticazione di Django da Apache. Vedere questo how-to:

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top