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)

Használja ezt a mintát az alkalmazás meglévő Requests-munkamenetével, proxyútvonalaival, URL-jével és ideiglenes kimeneti útvonalával. Nyilvános HTTP-útvonal esetén a HTTP-proxylista jelölt címeket kínál a proxy-hozzárendeléséhez. A streamelési minta fokozatosan fogyasztja a törzset, ahelyett hogy megszerezné a response.content elemet, majd egy második teljes méretű objektumot írna.

Tartsa meg ezt a tulajdonságot a letöltés során: a stream=True elhalasztja a törzset, de a response.content későbbi elérése továbbra is összegyűjtheti az egészet a memóriában. A iter_content darabmérete olvasási preferencia, nem HTTP darabolt átviteli kódolás iránti kérés a webhelyen vagy a proxyn.

A válasz kontextuskezelője akkor is lezárja a választ, ha egy írás meghiúsul, vagy az alkalmazás korán leáll. A szemléltetett időtúllépés-pár nem valós idejű határidő a teljes átvitelre; állítsa be a letöltés élettartam-szabályát szükség szerint külön.

Sikeres fogyasztás után ellenőrizze az alkalmazás által várt artefaktumot, mielőtt közzéteszi a végleges nevét. Megszakítás esetén a részleges fájlt csak szándékos folytatási szabály mellett tartsa meg, a távoli reprezentációt azonosító metaadatokkal. A nem üres ideiglenes fájl nem sikeres letöltés.

Kapcsolódó cikkek