[Django] Recht für Mediafiles
Verfasst: Montag 4. August 2008, 09:35
MoinMoin,
für ein aktuelles kleines Projekt (nur aus Spaß an der Freude, nichts wirklich großes), benötige ich Rechtevergabe für Statische Dateien in Django.
Szenario:
Ein Nutzer läd z.B. ein Bild hoch, und soll dann festlegen können, ob es a) öffentlich zu sehen seien soll, b) nur für eine bestimmte Nutzergruppe zugänglich ist, oder c) Privat ist, also das nur er/sie es sehen kann.
Die Frage ist jetzt: wie setzte ich das am besten um?
Ich habe bis jetzt folgende Möglichkeiten in die engere Auswahl genommen:
1) Ich lasse Django die Datei ausliefern, und schreibe dann view-Funktionen, die die Rechte checken und dann die Datei aus einem für den Webserver nicht zugänglichen Pfad laden und zurückgeben (PIL).
Vorteil: Sehr einfaches Handling der Rechte, sehr sicher, urls können weiter gegeben werden und bleiben immer gültig
Nachteil: Permormance geht in den Keller, skaliert scheiße.
2) Ich nutze mod_secdownload vom lighttpd und damit einen eigenen Webserver für die Dateien.
Vorteil: Skaliert besser, auch sicher
Nachteil: die url der Bilder ändert sich immer, können also nicht gebookmarkt werden und ich habe noch keinerlei Erfahrung mit dem lighttpd
Andere Möglichkeiten, die ich gefunden habe, sind direkt rausgeflogen:
- apache_auth: zu unflexibel
- nicht erratbare Dateinamen: zu unsicher (urls könnten weiter gegeben werden an jemanden, der nicht die Rechte hat).
So, und jetzt ihr: Wie würdet ihr das umsetzten? Welche Nach- oder Vorteile seht ihr? Gibt es noch andere Möglichkeiten?
Gruß,
r.
für ein aktuelles kleines Projekt (nur aus Spaß an der Freude, nichts wirklich großes), benötige ich Rechtevergabe für Statische Dateien in Django.
Szenario:
Ein Nutzer läd z.B. ein Bild hoch, und soll dann festlegen können, ob es a) öffentlich zu sehen seien soll, b) nur für eine bestimmte Nutzergruppe zugänglich ist, oder c) Privat ist, also das nur er/sie es sehen kann.
Die Frage ist jetzt: wie setzte ich das am besten um?
Ich habe bis jetzt folgende Möglichkeiten in die engere Auswahl genommen:
1) Ich lasse Django die Datei ausliefern, und schreibe dann view-Funktionen, die die Rechte checken und dann die Datei aus einem für den Webserver nicht zugänglichen Pfad laden und zurückgeben (PIL).
Vorteil: Sehr einfaches Handling der Rechte, sehr sicher, urls können weiter gegeben werden und bleiben immer gültig
Nachteil: Permormance geht in den Keller, skaliert scheiße.
2) Ich nutze mod_secdownload vom lighttpd und damit einen eigenen Webserver für die Dateien.
Vorteil: Skaliert besser, auch sicher
Nachteil: die url der Bilder ändert sich immer, können also nicht gebookmarkt werden und ich habe noch keinerlei Erfahrung mit dem lighttpd
Andere Möglichkeiten, die ich gefunden habe, sind direkt rausgeflogen:
- apache_auth: zu unflexibel
- nicht erratbare Dateinamen: zu unsicher (urls könnten weiter gegeben werden an jemanden, der nicht die Rechte hat).
So, und jetzt ihr: Wie würdet ihr das umsetzten? Welche Nach- oder Vorteile seht ihr? Gibt es noch andere Möglichkeiten?
Gruß,
r.