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 ਚੰਕਡ ਟ੍ਰਾਂਸਫਰ ਕੋਡਿੰਗ ਦੀ ਬੇਨਤੀ ਨਹੀਂ।

ਪ੍ਰਤੀਕਿਰਿਆ ਦਾ ਸੰਦਰਭ ਪ੍ਰਬੰਧਕ ਪ੍ਰਤੀਕਿਰਿਆ ਬੰਦ ਕਰਦਾ ਹੈ, ਭਾਵੇਂ ਲਿਖਣਾ ਅਸਫਲ ਹੋਵੇ ਜਾਂ ਐਪਲੀਕੇਸ਼ਨ ਜਲਦੀ ਰੁਕ ਜਾਵੇ। ਉਦਾਹਰਨ ਵਾਲਾ ਟਾਈਮਆਉਟ ਜੋੜਾ ਪੂਰੇ ਸਥਾਨਾਂਤਰਨ ਲਈ ਅਸਲ ਸਮਾਂ-ਸੀਮਾ ਨਹੀਂ ਹੈ; ਲੋੜ ਅਨੁਸਾਰ ਡਾਊਨਲੋਡ ਦੀ ਉਮਰ ਨੀਤੀ ਵੱਖਰੀ ਸੈੱਟ ਕਰੋ।

ਸਫਲ ਵਰਤੋਂ ਤੋਂ ਬਾਅਦ, ਅੰਤਿਮ ਨਾਮ ਪ੍ਰਕਾਸ਼ਿਤ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਐਪਲੀਕੇਸ਼ਨ ਵੱਲੋਂ ਉਮੀਦ ਕੀਤੀ ਆਰਟੀਫੈਕਟ ਦੀ ਜਾਂਚ ਕਰੋ। ਰੁਕਾਵਟ ਆਉਣ 'ਤੇ, ਅੰਸ਼ਿਕ ਫਾਈਲ ਨੂੰ ਸਿਰਫ਼ ਜਾਣ-ਬੁੱਝ ਕੇ ਬਣਾਈ ਮੁੜ-ਸ਼ੁਰੂ ਨੀਤੀ ਅਧੀਨ ਰੱਖੋ, ਦੂਰ ਦੀ ਪੇਸ਼ਕਾਰੀ ਦੀ ਪਛਾਣ ਕਰਨ ਵਾਲੇ ਮੈਟਾਡੇਟਾ ਨਾਲ। ਖਾਲੀ ਨਾ ਹੋਣ ਵਾਲੀ ਅਸਥਾਈ ਫਾਈਲ ਸਫਲ ਡਾਊਨਲੋਡ ਨਹੀਂ ਹੈ।

ਸੰਬੰਧਿਤ ਲੇਖ