socks.set_default_proxy() ukládá výchozí hodnoty pro budoucí objekty PySocks socksocket. Nenahrazuje nativní třídu socketu v Pythonu. Proto nepřesměruje ftplib jen proto, že volání proběhne před připojením FTP.

Sledujte konstruktory, nikoli proměnnou, která drží URL proxy. ftplib vytváří řídicí spojení a další přenosová spojení. U pasivního FTP úspěšné přihlášení dokazuje jen to, že řídicí spojení fungovalo; datový socket použitý pro výpis nebo přenos souboru také potřebuje zamýšlenou trasu.

Recept, který nahrazuje socket.socket nebo obaluje modul, provádí jinou akci než nastavení výchozích hodnot PySocks. Může ovlivnit další knihovny, které tento modul sdílejí. Dočasné obnovení originálu poté neizoluje souběžná spojení od změny.

Vlastní podtřída ftplib může pokrýt cesty spojení, ale zkopírované vnitřnosti nesou předpoklady vydání Pythonu, ze kterého pocházejí, včetně značek časového limitu a zpracování protokolu. Aktualizace standardní knihovny kopii neaktualizují.

Zvolte udržovaného klienta nebo podporovanou integraci pro požadovanou proxy a režim FTP. Příklad stahování přes pasivní FTP v PycURL ukazuje samostatnou klientskou cestu. U přizpůsobení, které vlastní aplikace, určete, který konstruktor otevírá každý řídicí a datový socket, a zachovejte chování proti proudu, které nahrazuje. Správná hodnota proxy je užitečná jen tehdy, když ji tyto konstruktory skutečně spotřebují.

Související články