gert schrieb:
On Jul 24, 7:32 pm, "Diez B. Roggisch" <de...@nospam.web.de> wrote:
gert schrieb:

this is a non standard way to store multi part post data on disk
def application(environ, response):
    with open('/usr/httpd/var/wsgiTemp','w') as f:
        while True:
            chunk = environ['wsgi.input'].read(8192).decode('latin1')
            if not chunk: break
            f.write(chunk)
    response('200 OK',[])
    return ['complete']
my question is how do i handle the file, so i can shuffle it into a db
using small chunks of memorie ?
I don't think that's possible with the current DB-API. There is no
stream-based BLOB-interface (as e.g. JDBC offers).

So the answer certainly depends on your used RDBMS. For oracle, you
would be lucky:

http://cx-oracle.sourceforge.net/html/lob.html

Other adapters I don't know about.

sqlite :) ok let say for now it would be impossible on a db level, but
before i reach the impossible, i still need to parse the file to
prepare the chunks. How do i do that ? How do i get the chunks without
loading the hole file into memorie ?

It's memory - memorie might be some nice dutch girl you know :)

Apart from that, your code above does exactly that - reads the data chunkwise. If the WSGI-implementation works proper, this will be the socket's input stream, so there is no memory overhead involved.

Now of course if you want to have a multi-pass processing of the file without putting it into memory, then you need to save it to the harddisk befor.

But honestly - we are talking about a web-application here. My DSL-connection has 1 MBit upstream, the average server has at least 2GB of memory available - so we are talking 20000 seconds uploading time to fill that memory. Which is about 5 hours. And you are decoding the data to a certain decoding, so we are not talking about binary data here - are you really sure memory is an issue?

Diez

Diez
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to