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)

Defnyddiwch y patrwm hwn gyda sesiwn Requests bresennol y rhaglen, llwybrau'r procsi, yr URL a'r llwybr allbwn dros dro. Ar gyfer llwybr HTTP cyhoeddus, mae'r rhestr procsi HTTP yn darparu cyfeiriadau ymgeisiol ar gyfer eich mapio procsi. Mae'r patrwm ffrydio yn defnyddio'r corff yn gynyddrannol yn lle cael response.content ac yna ysgrifennu ail wrthrych maint llawn.

Cadwch yr eiddo hwnnw drwy gydol y lawrlwythiad: mae stream=True yn gohirio'r corff, ond gall cyrchu response.content wedyn ei gasglu i gyd i'r cof o hyd. Mae maint y darn yn iter_content yn ddewis darllen, nid yn gais am godio trosglwyddo HTTP wedi'i dorri ar y wefan nac ar y procsi.

Mae rheolwr cyd-destun yr ymateb yn cau'r ymateb hyd yn oed os bydd ysgrifennu yn methu neu'r rhaglen yn stopio'n gynnar. Nid yw'r pâr amseru darluniadol yn derfyn cloc wal ar gyfer y trosglwyddiad cyfan; gosodwch bolisi bywyd y lawrlwythiad ar wahân yn ôl yr angen.

Ar ôl defnyddio'n llwyddiannus, gwiriwch yr arteffact y mae'r rhaglen yn ei ddisgwyl cyn cyhoeddi ei enw terfynol. Wrth gael ei dorri, cadwch y ffeil rannol dim ond o dan bolisi ailddechrau bwriadol, gyda metadata sy'n nodi'r gynrychiolaeth bell. Nid yw ffeil dros dro nad yw'n wag yn lawrlwythiad llwyddiannus.

Erthyglau cysylltiedig