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 ತುಣುಕು ವರ್ಗಾವಣೆ ಎನ್‌ಕೋಡಿಂಗ್‌ನ ವಿನಂತಿಯಲ್ಲ.

ಪ್ರತಿಕ್ರಿಯೆಯ ಸಂದರ್ಭ ನಿರ್ವಾಹಕವು ಬರವಣಿಗೆ ವಿಫಲವಾದರೂ ಅಥವಾ ಅಪ್ಲಿಕೇಶನ್ ಬೇಗ ನಿಂತರೂ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಮುಚ್ಚುತ್ತದೆ. ಉದಾಹರಣೆಯ ಟೈಮೌಟ್ ಜೋಡಿಯು ಇಡೀ ವರ್ಗಾವಣೆಗೆ ನೈಜ ಸಮಯದ ಗಡುವಲ್ಲ; ಅಗತ್ಯವಿದ್ದರೆ ಡೌನ್‌ಲೋಡ್‌ನ ಜೀವಿತಾವಧಿ ನೀತಿಯನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಹೊಂದಿಸಿ.

ಯಶಸ್ವಿ ಬಳಕೆಯ ನಂತರ, ಅಂತಿಮ ಹೆಸರನ್ನು ಪ್ರಕಟಿಸುವ ಮೊದಲು ಅಪ್ಲಿಕೇಶನ್ ನಿರೀಕ್ಷಿಸುವ ಆರ್ಟಿಫ್ಯಾಕ್ಟ್ ಅನ್ನು ಪರಿಶೀಲಿಸಿ. ಅಡಚಣೆಯಾದರೆ, ಭಾಗಶಃ ಫೈಲ್ ಅನ್ನು ಉದ್ದೇಶಪೂರ್ವಕ ಮರುಪ್ರಾರಂಭ ನೀತಿಯ ಅಡಿಯಲ್ಲಿ ಮಾತ್ರ ಇರಿಸಿ, ದೂರದ ಪ್ರಾತಿನಿಧ್ಯವನ್ನು ಗುರುತಿಸುವ ಮೆಟಾಡೇಟಾದೊಂದಿಗೆ. ಖಾಲಿಯಿಲ್ಲದ ತಾತ್ಕಾಲಿಕ ಫೈಲ್ ಯಶಸ್ವಿ ಡೌನ್‌ಲೋಡ್ ಅಲ್ಲ.

ಸಂಬಂಧಿತ ಲೇಖನಗಳು