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
-~----------~----~----~----~------~----~------~--~---

Reply via email to