PySocks varsayılanı ftplib'i yeniden yönlendirmez
set_default_proxy'nin Python'un yerleşik socket uygulamasını değiştirdiğini varsaymak yerine ftplib'in gerçekte oluşturduğu socket'leri izleyin.
socks.set_default_proxy() gelecekteki PySocks socksocket nesneleri için varsayılanları saklar. Python'un yerleşik socket sınıfının yerini almaz. Bu nedenle, çağrı bir FTP bağlantısından önce gerçekleştiği için tek başına ftplib'i yeniden yönlendirmez.
Proxy URL'sini tutan değişkeni değil, kurucuları izleyin. ftplib bir denetim bağlantısı ve ek aktarım bağlantıları oluşturur. Pasif FTP'de başarılı oturum açma yalnızca denetim bağlantısının çalıştığını kanıtlar; liste veya dosya aktarımı için kullanılan veri soketinin de amaçlanan rotayı izlemesi gerekir.
socket.socket yerine geçen veya bir modülü saran bir tarif, PySocks varsayılanlarını ayarlamaktan başka bir iş yapar. Aynı modülü paylaşan diğer kitaplıkları etkileyebilir. Sonradan özgün durumu geri yüklemek, eşzamanlı bağlantıları bu değişiklikten yalıtmaz.
Özel bir ftplib alt sınıfı bağlantı yollarını kapsayabilir, ancak kopyalanan iç kısımlar geldikleri Python sürümünün varsayımlarını, zaman aşımı sentinelleri ve protokol işleme dahil, beraberinde taşır. Standart kitaplık güncellemeleri kopyayı güncellemez.
Gereken proxy ve FTP modu için bakımı yapılan bir istemci veya desteklenen bir tümleştirme seçin. PycURL ile pasif FTP indirme örneği ayrı bir istemci yolu gösterir. Uygulamaya ait bir özelleştirme için hangi kurucunun her denetim ve veri soketini açtığını belirleyin ve onun yerine geçtiği üst kaynak davranışı koruyun. Doğru proxy değeri ancak bu kurucular onu gerçekten kullandığında işe yarar.