د Python urllib سره د پروکسي ډاونلوډ فایل ته سټریم کول
د پروکسي ډاونلوډ یوې لنډمهاله فایل ته سټریم کړئ او د کاپي له بشپړیدو وروسته یوازې وروستی فایل نوم خپور کړئ.
import os
import shutil
from urllib.request import ProxyHandler, build_opener
proxy = 'http://proxy.example.net:8080'
opener = build_opener(ProxyHandler({
'http': proxy,
'https': proxy,
}))
temporary = 'archive.zip.part'
destination = 'archive.zip'
with opener.open('https://downloads.example.net/archive.zip',
timeout=20) as response:
with open(temporary, 'wb') as output:
shutil.copyfileobj(response, output)
os.replace(temporary, destination)د اپلیکیشن لپاره URLونه او فایل نومونه بدل کړئ. د پروکسي تصدیق پرته د اجازه ورکړل شوي عامه فایل ډاونلوډ لپاره، د HTTP پروکسي لیست کولی شي د پروکسي URL لپاره نوماند پای ټکي وړاندې کړي. دا ځانګړی urllib پرانیستونکی د HTTPS هدف لپاره د نورمال سند تصدیق سره HTTP پروکسي کاروي. دا نړیوال پرانیستونکی نه نصبوي؛ تصدیق، که اړین وي، د هغې ملاتړ شوي ترتیباتو ته اړتیا لري.
copyfileobj په ټوټو کاپي کوي. د فایل له شرایطو وتل هغه بندوي او د os.replace د وروستي نوم د ټاکلو دمخه بفر شوي لیکنې خالي کوي.
که غوښتنه یا کاپي تېروتنه پورته کړي، نوم بدلول پرېښودل کیږي. د پاکولو پالیسي لپاره ممکن جزوي فایل پاتې شي، او دا بهیر په هغه ناکامۍ کې موجود وروستی فایل نه لمس کوي. د بریالیتوب په صورت کې بدلون کولی شي هغه وروستی فایل بیا ولیکي، نو پالیسي په قصدي توګه وټاکئ.
د همغږو کارونو لپاره ځانګړي لنډمهاله نومونه وکاروئ. جلا پرانیستونکي شیان هغه کارونه نه ساتي چې ورته .part لاره شریکوي.
د 20 ثانیو ترتیب د ټول ډاونلوډ وخت پرځای ملاتړ شوي ساکټ عملیات محدودوي. د ټول کار لپاره مهال حد په اپلیکیشن کې جلا سمبالښت ته اړتیا لري. د لیږد بشپړیدل هم د ډاونلوډ شوي فایل تصدیق څخه جلا دي.