Download iwwer e Proxy mat Requests an iter_content
Konsuméier eng Requests-Antwert schrëttweis, wärend déi normal Statuskontrollen, d'Botzen an eng bewosst Politik fir deelweis Ausgab erhale bleiwen.
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)
Benotz dëst Muster mat der existéierender Requests-Sessioun vun der Applikatioun, de Proxy-Routen, der URL an dem temporäre Ausgabspad. Fir eng ëffentlech HTTP-Route liwwert d'HTTP-Proxy-Lëscht Kandidatadressen fir deng Proxy-Mapping. D'Streaming-Muster konsuméiert de Kierper schrëttweis, amplaz response.content ze kréien an duerno en zweet Objet a voller Gréisst ze schreiwen.
Behält dës Eigenschaft während dem ganzen Download: stream=True verspéit de Kierper, awer den Zougang zu response.content duerno kann en nach ëmmer ganz am Erënnerung sammelen. D'Chunk-Gréisst vun iter_content ass eng Liesprioritéit, keng Ufuerderung vun HTTP-Chunked-Transfer-Kodéierung op der Websäit oder um Proxy.
Den Antworts-Kontextmanager schléisst d'Antwert och wann eng Schreiwen feelgeet oder d'Applikatioun fréi stoppt. D'illustrativ Timeout-Puer ass keng real Deadline fir de ganzen Transfer; setz d'Liewensdauer-Politik vum Download separat no Bedarf.
No erfollegräicher Konsumtioun, kontrolléier den Artefakt, deen d'Applikatioun erwaart, ier s de säin endgültegen Numm publizéiers. Bei enger Ënnerbriechung behält déi deelweis Datei just ënner enger bewosster Fortsetzungspolitik, mat Metadaten, déi déi entfernte Representatioun identifizéieren. Eng net eidel temporär Datei ass keen erfollegräichen Download.