Deskargatu proxy baten bidez Requests eta iter_content erabiliz
Kontsumitu Requests erantzuna pixkanaka, ohiko egoera-egiaztapenak, garbiketa eta irteera partzialerako politika deliberatua mantenduz.
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)
Erabili eredu hau aplikazioaren lehendik dagoen Requests saioarekin, proxy ibilbideekin, URLarekin eta irteerako aldi baterako bidearekin. HTTP ibilbide publiko baterako, HTTP proxy zerrendak hautagai helbideak ematen ditu zure proxy maparako. Streaming ereduak gorputza pixkanaka kontsumitzen du, response.content lortu eta gero tamaina osoko bigarren objektu bat idatzi beharrean.
Mantendu propietate hori deskarga osoan zehar: stream=True-ek gorputza atzeratzen du, baina geroago response.content atzitzeak oraindik memorian bildu dezake. iter_content-ren zati-tamaina irakurketa-hobespena da, ez webgunean edo proxian HTTP transferentzia zatituaren kodeketa eskatzea.
Erantzunaren testuinguru-kudeatzaileak erantzuna ixten du idazketak huts egiten badu edo aplikazioa goiz gelditzen bada ere. Adibideko timeout bikotea ez da transferentzia osorako erloju-deadlinea; ezarri deskargaren bizitza-politika bereizita, behar den moduan.
Kontsumo arrakastatsuaren ondoren, egiaztatu aplikazioak espero duen artefaktua izen finala argitaratu aurretik. Eteten bada, mantendu fitxategi partziala berrezartze-politika deliberatu baten pean soilik, urruneko errepresentazioa identifikatzen duen metadatorekin. Fitxategi tenporal ez-hutsa ez da deskarga arrakastatsua.