I have implemented something included in django:

from django.core.servers.basehttp import FileWrapper

wrapper = FileWrapper(file(filepath))
response = HttpResponse(wrapper, mimetype=type)

It works great, but anyway I'm gonna study your solutions.

Which would you recommend me?

Regards,
Adrian.


On 23 nov, 18:38, Bill Freeman <ke1g...@gmail.com> wrote:
> 1. You could read (and thus write) in smaller chunks, by giving read() an
> argument indicating the number of bytes to read:
>
>    f = open(file)  # The mode 'r' is default
>    for buf in read(1024*32):
>       response.write(buf)
>    f.close()
>
> 2. You could, instead, let Apache serve the files in encrypted form,
> and sell the
> user a decryption key.
>
> On Mon, Nov 23, 2009 at 12:18 PM, Adrián Ribao <ari...@gmail.com> wrote:
> > Hello,
>
> > I have created a website where you can buy and download some files.
> > For security reasons all the files are served through a view, where
> > comprobations are made in order to assure that the user bought the
> > product.
>
> > The problem is that the files are at least 400Mb and some of them are
> > nearly 1Gb. Using this view is inefficient since all the content is
> > loaded into memory and it kills the server:
>
> > type, encoding = mimetypes.guess_type(file)
> > name = os.path.basename(file)
> > response = HttpResponse(mimetype=type)
> > response['Content-Disposition'] = 'attachment; filename=%s' %
> > (smart_str(name),)
>
> > f = open(file, 'r')
> > response.write(f.read())
> > f.close()
> > return response
>
> > How could I solve this problem?
>
> > Regards,
>
> > Adrian.
>
> > --
>
> > You received this message because you are subscribed to the Google Groups 
> > "Django users" group.
> > To post to this group, send email to django-us...@googlegroups.com.
> > To unsubscribe from this group, send email to 
> > django-users+unsubscr...@googlegroups.com.
> > For more options, visit this group 
> > athttp://groups.google.com/group/django-users?hl=.

--

You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-us...@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=.


Reply via email to