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 چنکڈ ٹرانسفر انکوڈنگ کی درخواست نہیں۔

جواب کا کانٹیکسٹ مینیجر جواب بند کر دیتا ہے، چاہے لکھنا ناکام ہو یا ایپلیکیشن جلدی رک جائے۔ مثال والا ٹائم آؤٹ جوڑا پوری منتقلی کے لیے حقیقی وقتی حد نہیں ہے؛ ضرورت کے مطابق ڈاؤن لوڈ کی زندگی کی پالیسی الگ مقرر کریں۔

کامیاب استعمال کے بعد، حتمی نام شائع کرنے سے پہلے ایپلیکیشن کی متوقع آرٹی فیکٹ کی جانچ کریں۔ رکاوٹ کی صورت میں، جزوی فائل کو صرف سوچی سمجھی دوبارہ شروع کرنے کی پالیسی کے تحت رکھیں، دور دراز کی نمائندگی کی شناخت کرنے والے میٹا ڈیٹا کے ساتھ۔ خالی نہ ہونے والی عارضی فائل کامیاب ڈاؤن لوڈ نہیں ہے۔

متعلقہ مضامین