PySocks ഡിഫോൾട്ട് ftplib-നെ വീണ്ടും റൂട്ട് ചെയ്യുന്നില്ല
set_default_proxy Python-ന്റെ നേറ്റീവ് socket നടപ്പാക്കൽ മാറ്റുമെന്ന് അനുമാനിക്കാതെ ftplib യഥാർത്ഥത്തിൽ സൃഷ്ടിക്കുന്ന sockets പിന്തുടരുക.
socks.set_default_proxy() ഭാവിയിലെ PySocks socksocket ഒബ്ജക്റ്റുകൾക്കുള്ള ഡിഫോൾട്ടുകൾ സൂക്ഷിക്കുന്നു. അത് Python-ന്റെ നേറ്റീവ് socket ക്ലാസ് മാറ്റിസ്ഥാപിക്കുന്നില്ല. അതിനാൽ FTP കണക്ഷന് മുമ്പ് കോൾ സംഭവിക്കുന്നതുകൊണ്ട് മാത്രം അത് ftplib-നെ വീണ്ടും റൂട്ട് ചെയ്യുന്നില്ല.
പ്രോക്സി URL സൂക്ഷിക്കുന്ന വേരിയബിളിനെയല്ല, കൺസ്ട്രക്ടറുകളെ പിന്തുടരുക. ftplib ഒരു കൺട്രോൾ കണക്ഷനും അധിക ട്രാൻസ്ഫർ കണക്ഷനുകളും സൃഷ്ടിക്കുന്നു. പാസീവ് FTP-യിൽ വിജയകരമായ ലോഗിൻ കൺട്രോൾ കണക്ഷൻ പ്രവർത്തിച്ചു എന്ന് മാത്രമാണ് തെളിയിക്കുന്നത്; ലിസ്റ്റിംഗിനോ ഫയൽ കൈമാറ്റത്തിനോ ഉപയോഗിക്കുന്ന ഡാറ്റാ socket-നും ഉദ്ദേശിച്ച റൂട്ട് വേണം.
socket.socket മാറ്റിസ്ഥാപിക്കുന്നതോ ഒരു മൊഡ്യൂൾ റാപ്പ് ചെയ്യുന്നതോ ആയ റെസിപ്പി PySocks ഡിഫോൾട്ടുകൾ സജ്ജീകരിക്കുന്നതിനപ്പുറം മറ്റൊരു പ്രവർത്തനം ചെയ്യുന്നു. അത് അതേ മൊഡ്യൂൾ പങ്കിടുന്ന മറ്റ് ലൈബ്രറികളെ ബാധിച്ചേക്കാം. പിന്നീട് ഒറിജിനൽ പുനഃസ്ഥാപിക്കുന്നത് ഒരേസമയം നടക്കുന്ന കണക്ഷനുകളെ ആ മാറ്റത്തിൽ നിന്ന് വേർതിരിക്കുന്നില്ല.
ഇഷ്ടാനുസൃത ftplib സബ്ക്ലാസിന് കണക്ഷൻ പാതകൾ ഉൾക്കൊള്ളാം, പക്ഷേ പകർത്തിയ ആന്തരികഭാഗങ്ങൾ അവ വന്ന Python പതിപ്പിന്റെ അനുമാനങ്ങൾ, ടൈംഔട്ട് സെന്റിനലുകളും പ്രോട്ടോക്കോൾ കൈകാര്യം ചെയ്യലും ഉൾപ്പെടെ, കൊണ്ടുവരുന്നു. സ്റ്റാൻഡേർഡ് ലൈബ്രറി അപ്ഡേറ്റുകൾ ആ പകർപ്പ് അപ്ഡേറ്റ് ചെയ്യുന്നില്ല.
ആവശ്യമായ പ്രോക്സിക്കും FTP മോഡിനും പരിപാലിക്കപ്പെടുന്ന ഒരു ക്ലയന്റോ പിന്തുണയുള്ള ഇന്റഗ്രേഷനോ തിരഞ്ഞെടുക്കുക. PycURL പാസീവ് FTP ഡൗൺലോഡ് ഉദാഹരണം വേറിട്ട ഒരു ക്ലയന്റ് പാത വിശദീകരിക്കുന്നു. ആപ്ലിക്കേഷന്റെ ഉടമസ്ഥതയിലുള്ള ഇഷ്ടാനുസൃതമാക്കലിന്, ഏത് കൺസ്ട്രക്ടറാണ് ഓരോ കൺട്രോൾ, ഡാറ്റാ socket തുറക്കുന്നതെന്ന് കണ്ടെത്തി അത് മാറ്റിസ്ഥാപിക്കുന്ന അപ്സ്ട്രീം പെരുമാറ്റം നിലനിർത്തുക. ശരിയായ പ്രോക്സി മൂല്യം ഉപയോഗപ്രദമാകുന്നത് ആ കൺസ്ട്രക്ടറുകൾ അത് യഥാർത്ഥത്തിൽ ഉപയോഗിക്കുമ്പോൾ മാത്രമാണ്.