Niżżel permezz ta' proxy b'Requests u iter_content
Ikkonsma risposta ta' Requests b'mod inkrementali filwaqt li żżomm il-kontrolli tas-status normali, it-tindif u politika maħsuba għal output parzjali.
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.