Domanda

Ho bisogno di caricare un potenzialmente enorme file di testo ad un livello molto semplice WSGI-app senza mangiare tutta la memoria disponibile sul server. Come posso realizzare questo? Voglio usare i moduli standard di Python e di evitare moduli di terze parti, se possibile.

È stato utile?

Soluzione

wsgi.input dovrebbe essere un file come oggetto flusso. Si può leggere da quella in blocchi, e scrivere i blocchi direttamente su disco. Questo non dovrebbe esaurire la memoria significativa.

O forse ho capito male la domanda?

Altri suggerimenti

Se si utilizza il modulo cgi per analizzare l'ingresso (che la maggior parte dei quadri utilizzano, ad esempio, Piloni, WebOb, CherryPy) allora salverà automaticamente il file caricato in un file temporaneo, e non caricarlo in memoria.

Ha pitone sa come che fare con file zip gzip annd Vorrei suggerire per comprimere il file (utilizzando una zip o gzip applicazione compatibile come 7-zip) sul client e poi caricarlo sul server.

Ancora meglio: scrivere uno script che automaticamente comprimere il file e caricarlo. Questo è possibile con la libreria standard.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top