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)

Musanya URL da sunayen fayil don aikace-aikacen. Don saukewar fayil na jama'a da aka yarda ba tare da tabbatarwar wakili ba, jerin wakilan HTTP na iya samar da ƙarshen wurare masu yiwuwa don URL na wakili. Wannan buɗaɗɗen urllib na musamman yana amfani da wakilin HTTP don makoma ta HTTPS tare da tabbatar da takardar shaidar ta al'ada. Ba ya girka buɗaɗɗen duniya; tabbatarwa, idan ana buƙata, na buƙatar saitin da aka tallafa.

copyfileobj yana kwafa cikin sassa. Ficewa daga mahallin fayil yana rufe shi kuma yana fitar da rubuce-rubucen da aka tanada kafin os.replace ya sanya sunan ƙarshe.

Idan buƙata ko kwafin ya ɗaga kuskure, ana tsallake sauya suna. Fayil ɗin ɓangare na iya wanzuwa don manufar tsaftacewa, kuma wannan tafiyar tana barin fayil na ƙarshe da ke akwai ba tare da taɓawa a wannan gazawar ba. Idan an yi nasara, maye gurbin na iya sake rubuta wancan fayil na ƙarshe, don haka zaɓi manufar da gangan.

Yi amfani da sunayen wucin gadi na musamman don ayyuka na lokaci ɗaya. Abubuwan buɗaɗɗe daban ba sa kare ayyukan da ke raba hanya ɗaya .part.

Saitin daƙiƙa 20 yana iyakance ayyukan soket da aka tallafa, ba jimillar lokacin saukewa ba. Ƙayyadaddun lokaci na dukan aikin na buƙatar kulawa daban a cikin aikace-aikacen. Kammala canja wurin kuma ya bambanta da tabbatar da fayil ɗin da aka sauke.

Labarai masu alaƙa