PySocks-ի լռելյայնը չի վերահասցեավորում ftplib-ը
Հետևեք այն socket-ներին, որոնք ftplib-ը իրականում ստեղծում է, փոխանակ ենթադրելու, թե set_default_proxy-ն փոխում է Python-ի բնիկ socket-ի իրականացումը։
socks.set_default_proxy() պահում է լռելյայն արժեքներ ապագա PySocks socksocket օբյեկտների համար։ Այն չի փոխարինում Python-ի բնիկ socket դասը։ Հետևաբար, այն չի վերահասցեավորում ftplib-ը միայն այն պատճառով, որ կանչը տեղի է ունենում FTP միացումից առաջ։
Հետևեք կոնստրուկտորներին, ոչ թե փրոքսիի URL-ը պահող փոփոխականին։ ftplib-ը ստեղծում է կառավարման միացում և լրացուցիչ փոխանցման միացումներ։ Պասիվ FTP-ում հաջող մուտքը ապացուցում է միայն, որ կառավարման միացումն աշխատել է. ցանկի կամ ֆայլի փոխանցման համար օգտագործվող տվյալների socket-ին նույնպես անհրաժեշտ է նախատեսված ուղին։
Բաղադրատոմսը, որը փոխարինում է socket.socket-ը կամ փաթաթում մոդուլը, կատարում է այլ գործողություն, քան PySocks-ի լռելյայնների սահմանումը։ Այն կարող է ազդել այդ մոդուլը կիսող այլ գրադարանների վրա։ Բնագրի ժամանակավոր վերականգնումը հետո չի մեկուսացնում միաժամանակյա միացումները փոփոխությունից։
Հատուկ ftplib ենթադասը կարող է ծածկել միացման ուղիները, սակայն պատճենված ներքին մասերը կրում են այն Python թողարկման ենթադրությունները, որտեղից եկել են, ներառյալ ժամանակի սահմանի նշիչները և արձանագրության մշակումը։ Ստանդարտ գրադարանի թարմացումները չեն թարմացնում պատճենը։
Ընտրեք պահպանվող հաճախորդ կամ աջակցվող ինտեգրում պահանջվող փրոքսիի և FTP ռեժիմի համար։ PycURL-ով պասիվ FTP ներբեռնման օրինակը ցույց է տալիս առանձին հաճախորդի ուղի։ Հավելվածին պատկանող հարմարեցման համար որոշեք, թե որ կոնստրուկտորն է բացում յուրաքանչյուր կառավարման և տվյալների socket, և պահպանեք վերին մակարդակի այն վարքը, որը փոխարինվում է։ Ճիշտ փրոքսի արժեքը օգտակար է միայն այն դեպքում, երբ այդ կոնստրուկտորներն իսկապես օգտագործում են այն։