ស្ទ្រីមការទាញយកតាមប្រូកស៊ីទៅឯកសារដោយ 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 ពិសេសនេះប្រើប្រូកស៊ី HTTP សម្រាប់គោលដៅ HTTPS ជាមួយការផ្ទៀងផ្ទាត់វិញ្ញាបនបត្រធម្មតា។ វាមិនដំឡើងកម្មវិធីបើកសកលទេ។ ការផ្ទៀងផ្ទាត់ ប្រសិនបើចាំបាច់ ត្រូវការការកំណត់ដែលគាំទ្ររបស់វា។
copyfileobj ចម្លងជាបំណែក។ ការចេញពីបរិបទឯកសារបិទវា និងបញ្ចេញការសរសេរដែលបានរក្សាទុកមុនពេល os.replace ដំឡើងឈ្មោះចុងក្រោយ។
ប្រសិនបើសំណើ ឬការចម្លងបង្កើតកំហុស ការប្តូរឈ្មោះត្រូវបានរំលង។ ឯកសារមួយផ្នែកអាចនៅសល់សម្រាប់គោលនយោបាយសម្អាត ហើយលំហូរនេះទុកឯកសារចុងក្រោយដែលមានស្រាប់ដោយមិនប៉ះពាល់នៅពេលបរាជ័យនោះ។ ប្រសិនបើជោគជ័យ ការជំនួសអាចសរសេរជាន់លើឯកសារចុងក្រោយនោះ ដូច្នេះជ្រើសរើសគោលនយោបាយដោយចេតនា។
ប្រើឈ្មោះបណ្ដោះអាសន្នតែមួយគត់សម្រាប់ការងារស្របគ្នា។ វត្ថុបើកដាច់ដោយឡែកមិនការពារការងារដែលចែករំលែកផ្លូវ .part ដូចគ្នាទេ។
ការកំណត់ 20 វិនាទីកំណត់ប្រតិបត្តិការសុខេតដែលគាំទ្រ មិនមែនពេលវេលាទាញយកសរុបទេ។ កាលកំណត់សម្រាប់ការងារទាំងមូលត្រូវការការគ្រប់គ្រងដាច់ដោយឡែកក្នុងកម្មវិធី។ ការបញ្ចប់នៃការផ្ទេរក៏ដាច់ដោយឡែកពីការផ្ទៀងផ្ទាត់ឯកសារដែលបានទាញយក។