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)

Kasuta seda mustrit rakenduse olemasoleva Requestsi seansi, puhverserveri marsruutide, URL-i ja ajutise väljundteega. Avaliku HTTP-marsruudi jaoks annab HTTP puhverserverite loend kandidaataadressid sinu puhverserveri kaardistuse jaoks. Voogedastusmuster tarbib keha järk-järgult, selle asemel et hankida response.content ja seejärel kirjutada teine täissuuruses objekt.

Säilita see omadus kogu allalaadimise vältel: stream=True lükkab keha edasi, kuid response.content-le hiljem juurdepääs võib selle ikkagi tervikuna mällu koguda. iter_content tüki suurus on lugemiseelistus, mitte HTTP tükeldatud edastuskodeeringu taotlus veebisaidil või puhverserveris.

Vastuse kontekstihaldur sulgeb vastuse ka siis, kui kirjutamine ebaõnnestub või rakendus peatub varakult. Näitlik ajapiiride paar ei ole kogu edastuse seinakella tähtaeg; sea allalaadimise eluea poliitika vajaduse korral eraldi.

Pärast edukat tarbimist kontrolli artefakti, mida rakendus ootab, enne selle lõpliku nime avaldamist. Katkestuse korral hoia osaline fail ainult teadliku jätkamispoliitika alusel, metateabega, mis identifitseerib kaugesituse. Mittetühi ajutine fail ei ole edukas allalaadimine.

Seotud artiklid