socks.set_default_proxy() чува стандардни вредности за идните socksocket објекти на PySocks. Тоа не ја заменува вградената socket класа на Python. Затоа не го преусмерува ftplib само затоа што повикот се случува пред FTP-поврзувањето.

Следете ги конструкторите, а не променливата што го чува URL-то на проксито. ftplib создава контролна врска и дополнителни врски за пренос. Кај пасивниот FTP, успешната најава докажува само дека контролната врска работела; и сокетот за податоци што се користи за список или пренос на датотека мора да оди по предвидената рута.

Рецепт што го заменува socket.socket или завиткува модул прави нешто друго освен поставување стандардни вредности на PySocks. Може да влијае на други библиотеки што го делат истиот модул. Подоцнежното враќање на оригиналот не ги прави истовремените врски изолирани од промената.

Прилагодена поткласа на ftplib може да ги покрие патеките на врските, но копираните внатрешности ги носат претпоставките на изданието на Python од кое потекнуваат, вклучително и сентинели за таймаут и ракување со протоколот. Ажурирањата на стандардната библиотека не го ажурираат копијата.

Изберете одржуван клиент или поддржана интеграција за потребното прокси и FTP-режим. Примерот за пасивно FTP-преземање со PycURL илустрира посебна клиентска патека. За прилагодување што му припаѓа на апликацијата, утврдете кој конструктор го отвора секој контролен и податочен сокет и зачувајте го однесувањето од изворот што го заменува. Точната вредност на проксито е корисна само кога тие конструктори навистина ја користат.

Поврзани статии