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)

ໃຊ້ຮູບແບບນີ້ກັບ session Requests ທີ່ມີຢູ່ແລ້ວຂອງແອັບ, ເສັ້ນທາງ proxy, URL ແລະ ເສັ້ນທາງຜົນອອກຊົ່ວຄາວ. ສຳລັບເສັ້ນທາງ HTTP ສາທາລະນະ, ລາຍຊື່ proxy HTTP ໃຫ້ທີ່ຢູ່ຜູ້ສະໝັກສຳລັບການແຜນທີ່ proxy ຂອງທ່ານ. ຮູບແບບສະຕຣີມບໍລິໂພກໂຕຂອງເທື່ອລະໜ້ອຍ ແທນທີ່ຈະໄດ້ຮັບ response.content ແລ້ວຂຽນວັດຖຸທີສອງຂະໜາດເຕັມ.

ຮັກສາຄຸນສົມບັດນັ້ນຕະຫຼອດການດາວໂຫຼດ: stream=True ເລື່ອນໂຕອອກໄປ, ແຕ່ການເຂົ້າເຖິງ response.content ຫຼັງຈາກນັ້ນຍັງສາມາດເກັບທັງໝົດໃນຫນ່ວຍຄວາມຈຳ. ຂະໜາດຊິ້ງຂອງ iter_content ແມ່ນຄວາມມັກໃນການອ່ານ ບໍ່ແມ່ນການຮ້ອງຂໍການເຂົ້າລະຫັດການສົ່ງ HTTP ແບບແບ່ງຊິ້ງຢູ່ເວັບໄຊ ຫຼື proxy.

ຜູ້ຈັດການບໍລິບົດຂອງການຕອບສະໜອງປິດການຕອບສະໜອງ ເຖິງແມ່ນການຂຽນລົ້ມເຫຼວ ຫຼື ແອັບຢຸດກ່ອນເວລາ. ຄູ່ເວລາກຳນົດທີ່ເປັນຕົວຢ່າງບໍ່ແມ່ນເສັ້ນຕາຍເວລາຈິງສຳລັບການສົ່ງທັງໝົດ; ຕັ້ງນະໂຍບາຍອາຍຸການດາວໂຫຼດແຍກຕ່າງຫາກຕາມຄວາມຕ້ອງການ.

ຫຼັງຈາກບໍລິໂພກສຳເລັດແລ້ວ, ກວດສອບວັດຖຸທີ່ແອັບຄາດຫວັງ ກ່ອນທີ່ຈະເຜີຍແຜ່ຊື່ສຸດທ້າຍຂອງມັນ. ເມື່ອຖືກຂັດຂວາງ, ເກັບໄຟລ໌ບາງສ່ວນໄວ້ພາຍໃຕ້ນະໂຍບາຍການສືບຕໍ່ທີ່ຕັ້ງໃຈເທົ່ານັ້ນ, ພ້ອມກັບ metadata ທີ່ລະບຸຕົວແທນທາງໄກ. ໄຟລ໌ຊົ່ວຄາວທີ່ບໍ່ຫວ່າງເປົ່າບໍ່ແມ່ນການດາວໂຫຼດທີ່ສຳເລັດ.

ບົດຄວາມທີ່ກ່ຽວຂ້ອງ