with session.get(url, stream=True, proxies=routes,
                 timeout=(5, 30)) as response:
    response.raise_for_status()
    with open(part_path, 'wb') as output:
        for chunk in response.iter_content(chunk_size=64 * 1024):
            if chunk:
                output.write(chunk)

Uża dan il-mudell mas-sessjoni Requests eżistenti tal-applikazzjoni, ir-rotot tal-proxy, l-URL u l-mogħdija tal-output temporanju. Għal rotta HTTP pubblika, il-lista tal-proxy HTTP tipprovdi indirizzi kandidati għall-mapping tal-proxy tiegħek. Il-mudell tal-istreaming jikkonsma l-ġisem b'mod inkrementali minflok ma jikseb response.content u mbagħad jikteb it-tieni oġġett ta' daqs sħiħ.

Żomm dik il-proprjetà matul it-tniżżil kollu: stream=True jiddifferixxi l-ġisem, iżda l-aċċess għal response.content wara xorta jista' jiġbru kollu fil-memorja. Id-daqs tal-biċċa ta' iter_content huwa preferenza ta' qari, mhux talba għal kodifikazzjoni tat-trasferiment HTTP b'biċċiet fis-sit web jew fil-proxy.

Il-maniġer tal-kuntest tar-risposta jagħlaq ir-risposta anke jekk tikteb tfalli jew l-applikazzjoni tieqaf kmieni. Il-par ta' timeout illustrattiv mhuwiex skadenza tal-ħin reali għat-trasferiment kollu; issettja l-politika tal-ħajja tat-tniżżil b'mod separat skont il-ħtieġa.

Wara konsum b'suċċess, iċċekkja l-artefatt li tistenna l-applikazzjoni qabel ma tippubblika l-isem finali tiegħu. F'interruzzjoni, żomm il-fajl parzjali biss taħt politika maħsuba ta' tkomplija, b'metadata li tidentifika r-rappreżentazzjoni remota. Fajl temporanju mhux vojt mhuwiex tniżżil b'suċċess.

Artikli relatati