אַראָפּלאָדן FTP דורך SOCKS מיט PycURL
לאָז libcurl פֿירן די קאָנטראָל־ און פּאַסיווע דאַטן־פֿאַרבינדונגען פֿון אַן FTP־אַראָפּלאָדן דורך אַ SOCKS5 פּראָקסי.
PycURL שטעלט אַוועק די FTP־ און SOCKS־שטיצע פֿון libcurl דורך איין איבערפֿירונג־האַנטל. בײַ אַ פּאַסיוון FTP־אַראָפּלאָדן קען די פּראָגראַם איבערלאָזן סיי די קאָנטראָל־פֿאַרבינדונג און סיי די באַזונדערע דאַטן־פֿאַרבינדונג צו יענער אימפּלעמענטאַציע.
import pycurl
transfer = pycurl.Curl()
try:
transfer.setopt(pycurl.URL, ftp_url)
transfer.setopt(pycurl.PROXY, "socks5h://proxy.example.net:1080")
transfer.setopt(pycurl.NOPROXY, "")
transfer.setopt(pycurl.WRITEDATA, output)
transfer.setopt(pycurl.CONNECTTIMEOUT, 10)
transfer.setopt(pycurl.TIMEOUT, 60)
transfer.perform()
finally:
transfer.close()
ftp_url איז די FTP־רעסורס URL פֿון דער פּראָגראַם, און output איז אַ שוין אָפֿענער בינערער אויסגאַנג־שטראָם. די צײַטגרענעצן זענען ביישפּיל־גרענעצן וואָס מע קלייבט לויט דער ערוואַרטעטער טעקע־גרייס און פֿאַרבינדונג. פֿאַר אַ פּובליק FTP־רעסורס וווּ פּובליקע מיטלערס זענען ערלויבט, שטעלט די SOCKS5 פּראָקסי־ליסטע פֿאָר קאַנדידאַטן פֿאַר דער פּראָקסי־URL; פּרוּווט אַז דער אויסגעקליבענער קנויט ערלויבט סיי דאָס קאָנטראָל־ציל און סיי דאָס פּאַסיווע דאַטן־ציל.
socks5h איבערגיט די פּתרון פֿון דעם ציל־האָסטנאָמען צום SOCKS פּראָקסי. NOPROXY איז בפֿירושער ליידיק, כּדי אַ געירשנטער no_proxy סבֿיבֿה־באַשטימונג זאָל נישט אַרומגיין דעם וועג פֿאַר דער איבערפֿירונג.
לאָז אַקטיוו FTP אָפּגעשאַלטעט: עס וואַרט אויף אַ קומענדיקער סערווער־פֿאַרבינדונג און איז נישט פֿאַראַן אין דעם פּראָקסי־מאָדע. די אַרויסגאַנג־פּאָליטיק פֿון פּראָקסי מוז ערלויבן דעם FTP־קאָנטראָל־פּאָרט און דעם פּאַסיוון דאַטן־פּאָרט וואָס איז אויסגעקליבן פֿאַר דער איבערפֿירונג. דערפֿאַר באַווײַזט אַ מוצלח לאָגין אַליין נישט אַז די טעקע קען אַראָפּגעלאָדן ווערן.
ווען מען דאַרף אויטענטיפֿיקאַציע, ניצט PROXYUSERNAME און PROXYPASSWORD פֿון PycURL פֿאַר דעם מיטלער; די FTP־סערווער־באַשטעטיקונגען געהערן צום FTP־פֿאַרבינדונג.