You could document this experience once you get it running; sounds useful.
On Jun 30, 1:00 am, John Hensley <j...@fairviewcomputing.com> wrote: > On 6/28/09 10:20 PM, Annie wrote: > > > I'm trying to this to work: users can download their files from their > > account page from a url like > > this:http://example.com/account/download/a1234565789asedga-2/ > > for which django processes the authentication and then passes along > > the info to nginx to serve the file. > > [...] > > > > > Here are the relevant bits of code: > > > # part of the views.py > > > def download_file(request, dlkey=None, ftype=None): > > if request.user.is_authenticated(): > > try: > > k = Ebook.objects.select_related().filter > > (ftype__exact=ftype).filter > > (book__orderdetail__dlkey__exact=dlkey).filter > > (book__orderdetail__medium__exact='E')[:1] > > for e in k: > > ebook = e.ebook > > filename = os.path.join(PROTECTED_DIR, os.path.basename > > (ebook)) > > response = HttpResponse() > > response['X-Accel-Redirect'] = ebook > > response['Content-Disposition'] = > > "attachment;filename=" + ebook > > return response > > except Exception: > > raise Http404 > > > # part of the nginx configuration for the domain: > > > location ^~ /account/download/ { > > include /etc/nginx/ > > fastcgi_params_django; > > fastcgi_pass 127.0.0.1:1024; > > alias /home/me/web/example.com/ > > public/media/books/; > > } > > > location ^~ /media/books/ { > > root /home/me/web/example.com/ > > public; > > internal; > > } > > [...] > > > [1]http://wiki.nginx.org/NginxXSendfile > > I think the answer's in that document, actually. The value of > X-Accel-Redirect should be your internal location's URL > ('/media/books/') plus your filename (os.path.basename(ebook), in your > view). Nginx will deliver > /home/me/web/example.com/public/media/books/ebook-basename.pdf. > > John --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---