Como o cgi.FieldStorage armazena arquivos?

Então, eu brinco com WSGI, cgi.FieldStorage e uploads de arquivos. E simplesmente não consigo entender como ele lida com o upload de arquivos.

No começo, parecia que apenas armazenava o arquivo inteiro na memória. E pensei: hm, isso deve ser fácil de testar - um arquivo grande deve entupir a memória! .. E não foi. Ainda assim, quando solicito o arquivo, é uma string, não um iterador, objeto de arquivo ou qualquer cois

Eu tentei ler a fonte do módulo cgi e encontrei algumas coisas sobre arquivos temporários, mas ele retorna uma string em pânico, não um objeto de arquivo! Então ... como isso funciona?!

Aqui está o código que eu usei:

import cgi
from wsgiref.simple_server import make_server

def app(environ,start_response):
    start_response('200 OK',[('Content-Type','text/html')])
    output = """
    <form action="" method="post" enctype="multipart/form-data">
    <input type="file" name="failas" />
    <input type="submit" value="Varom" />
    </form>
    """
    fs = cgi.FieldStorage(fp=environ['wsgi.input'],environ=environ)
    f = fs.getfirst('failas')
    print type(f)
    return output


if __name__ == '__main__' :
    httpd = make_server('',8000,app)
    print 'Serving'
    httpd.serve_forever()

Desde já, obrigado! :)

questionAnswers(3)

yourAnswerToTheQuestion