socks.set_default_proxy() съхранява стойности по подразбиране за бъдещи обекти PySocks socksocket. Той не замества вградения клас socket на Python. Следователно не пренасочва ftplib само защото извикването е станало преди FTP връзка.

Следете конструкторите, а не променливата, която държи URL адреса на проксито. ftplib създава управляваща връзка и допълнителни връзки за пренос. При пасивен FTP успешният вход доказва само, че управляващата връзка е работила; сокетът за данни, използван за списък или пренос на файл, също се нуждае от предвидения маршрут.

Рецепта, която замества socket.socket или обвива модул, извършва друго действие извън задаването на стойности по подразбиране на PySocks. Тя може да засегне други библиотеки, които споделят този модул. Временното възстановяване на оригинала след това не прави паралелните връзки изолирани от промяната.

Персонализиран подклас на ftplib може да покрие пътищата на връзките, но копираните вътрешности носят предположенията на изданието на Python, от което произхождат, включително маркери за изчакване и обработка на протокола. Актуализациите на стандартната библиотека не актуализират копието.

Изберете поддържан клиент или поддържана интеграция за изискваното прокси и FTP режим. Пример за изтегляне по пасивен FTP с PycURL илюстрира отделен клиентски път. За настройка, притежавана от приложението, определете кой конструктор отваря всеки управляващ сокет и сокет за данни и запазете поведението нагоре по веригата, което той замества. Правилната стойност на проксито е полезна само когато тези конструктори действително я използват.

Подобни статии