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)

Uzu ĉi tiun ŝablonon kun la ekzistanta Requests-sesio de la aplikaĵo, la prokuraj itineroj, la URL kaj la provizora eliga vojo. Por publika HTTP-itinero, la HTTP-prokura listo provizas kandidatajn adresojn por via prokura mapado. La fluiga ŝablono konsumas la korpon laŭpaŝe anstataŭ akiri response.content kaj poste skribi duan plengrandan objekton.

Konservu tiun econ dum la tuta elŝuto: stream=True prokrastas la korpon, sed aliro al response.content poste ankoraŭ povas kolekti ĝin tute en la memoro. La peco-grando de iter_content estas lega prefero, ne peto pri HTTP-peca transiga kodado ĉe la retejo aŭ la prokuro.

La kunteksta administranto de la respondo fermas la respondon eĉ se skribo malsukcesas aŭ la aplikaĵo haltas frue. La ilustra tempolima paro ne estas realtempa limdato por la tuta transigo; agordu la politikon pri vivdaŭro de la elŝuto aparte laŭbezone.

Post sukcesa konsumo, kontrolu la artefakton atendatan de la aplikaĵo antaŭ ol publikigi ĝian finan nomon. Ĉe interrompo, konservu la partan dosieron nur laŭ intenca daŭriga politiko, kun metadatenoj identigantaj la foran reprezenton. Ne-malplena provizora dosiero ne estas sukcesa elŝuto.

Rilataj artikoloj