Laai deur 'n instaanbediener af met Requests en iter_content
Verbruik 'n Requests-antwoord stapsgewys terwyl gewone statuskontroles, opruiming en 'n doelbewuste beleid vir gedeeltelike uitset behou word.
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)
Gebruik hierdie patroon met die toepassing se bestaande Requests-sessie, instaanroetes, URL en tydelike uitsetpad. Vir 'n openbare HTTP-roete verskaf die HTTP-instaanbedienerlys kandidaatadresse vir jou instaankartering. Die stroompatroon verbruik die liggaam stapsgewys in plaas daarvan om response.content te verkry en dan 'n tweede volledige objek te skryf.
Behou daardie eienskap dwarsdeur die aflaai: stream=True stel die liggaam uit, maar toegang tot response.content daarna kan dit steeds alles in die geheue bymekaarmaak. iter_content se stukgrootte is 'n leesvoorkeur, nie 'n versoek om HTTP-oordragkodering in stukke by die webwerf of instaanbediener nie.
Die antwoord-konteksbestuurder sluit die antwoord selfs as 'n skryf misluk of die toepassing vroeg stop. Die voorbeeldige tydperkpaar is nie 'n muurklok-sperdatum vir die hele oordrag nie; stel die aflaai se leeftydbeleid afsonderlik soos nodig.
Nadat die verbruik geslaag het, kontroleer die artefak wat die toepassing verwag voordat jy die finale naam publiseer. By onderbreking hou jy die gedeeltelike lêer net onder 'n doelbewuste hervatbeleid, met metadata wat die afgeleë voorstelling identifiseer. 'n Nie-leë tydelike lêer is nie 'n suksesvolle aflaai nie.