PDA

View Full Version : [Linguaggio X] download files / download manager


dierre
18-11-2008, 17:35
Linguaggio X perché è un problema che non dipende dal linguaggio :P

Problema: sto facendo una specie di download manager per miei files personali. Il download manager è scritto in django e funziona. C'è una questione che però non so come risolvere...o meglio ho immaginato alcune vie ma meglio che qualcuno più esperto di me sull'argomento me lo dica.

Come sapete ovviamente i file da downloader risiedono in una cartella del webserver. Dal momento che questi files mi servono come prova per elaborare delle statistiche sui download, quello che volevo fare era evitare che l'utente X potesse accedervi direttamente tramite l'url diretto del download (tipo www.miodominio.com/download/file.tgz).

Io avevo pensato a due soluzioni ma non so davvero se abbiano senso:

- soluzione 1: non dare i permessi di lettura alla cartella, ma a quel punto non avrebbe problemi anche il download manager?

- soluzione 2: url_rewrite, cioè se tizio digita www.miodominio.com/* c'è il redirect al download manager.

Come fare?

cionci
18-11-2008, 19:58
La 2 è la migliore, oppure con un .htaccess credo tu possa negare l'accesso a quella directory.

dierre
18-11-2008, 20:03
Sì alla fine ho optato per la soluzione uno, secondo voi va bene scritto così?

from django.http import HttpResponse
import cStringIO

def managing(request):

response = HttpResponse(mimetype='application/octect-stream')
response['Content-Disposition'] = 'attachment; filename=' + request['filename']
response['Cache-Control'] = 'must-revalidate, post-check=0, pre-check=0'

f = open( request['filename'], 'rb')
output = cStringIo.StringIO(f)
response = response + output.getvalue()

return response