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 бөлүктүү берүү коддоосуна суроо эмес.

Жооптун контекст менеджери жоопту жабат, жазуу ийгиликсиз болсо да же колдонмо эрте токтосо да. Мисалдагы таймаут түгэйи бүт берүү үчүн реалдуу убакыт чеги эмес; керек болсо жүктөөнүн өмүр саясатын өзүнчө коюңуз.

Ийгиликтүү колдонгондон кийин, акыркы атты жарыялоодон мурун колдонмо күткөн артефактты текшериңиз. Үзүлүү болгондо жарым-жартылай файлды гана атайын улантуу саясаты боюнча сактаңыз, алыскы көрүнүштү аныктаган метаберилиштер менен. Бош эмес убактылуу файл ийгиликтүү жүктөө эмес.

Тектеш макалалар