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)

Користите овај образац са постојећом Requests сесијом апликације, прокси рутама, URL-ом и привременом излазном путањом. За јавну HTTP руту листа HTTP проксија даје кандидат адресе за ваше мапирање проксија. Образац струјања троши тело постепено уместо да прибави response.content и затим запише други објекат пуне величине.

Задржите то својство током целог преузимања: stream=True одлаже тело, али приступ response.content након тога ипак може све скупити у меморију. Величина дела код iter_content је преференција читања, а не захтев за HTTP кодирањем преноса у деловима на сајту или проксију.

Управљач контекста одговора затвара одговор чак и ако писање не успе или се апликација заустави раније. Илустративни пар тајмаута није стварни крајњи рок за цео пренос; поставите политику трајања преузимања одвојено према потреби.

Након успешног трошења, проверите артефакт који апликација очекује пре објављивања коначног назива. При прекиду задржите делимичну датотеку само под намерном политиком наставка, са метаподацима који идентификују удаљену репрезентацију. Непразна привремена датотека није успешно преузимање.

Повезани чланци