PycURL ਨਾਲ SOCKS ਰਾਹੀਂ FTP ਡਾਊਨਲੋਡ
libcurl ਨੂੰ SOCKS5 ਪ੍ਰਾਕਸੀ ਰਾਹੀਂ FTP ਡਾਊਨਲੋਡ ਦਾ ਨਿਯੰਤਰਣ ਅਤੇ ਪੈਸਿਵ ਡੇਟਾ ਕਨੈਕਸ਼ਨ ਸੰਭਾਲਣ ਦਿਓ।
PycURL ਇੱਕ ਟ੍ਰਾਂਸਫਰ ਹੈਂਡਲ ਰਾਹੀਂ libcurl ਦਾ FTP ਅਤੇ SOCKS ਸਮਰਥਨ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ। ਪੈਸਿਵ FTP ਡਾਊਨਲੋਡ ਵਿੱਚ ਐਪਲੀਕੇਸ਼ਨ ਨਿਯੰਤਰਣ ਕਨੈਕਸ਼ਨ ਅਤੇ ਵੱਖਰਾ ਡੇਟਾ ਕਨੈਕਸ਼ਨ ਦੋਵੇਂ ਉਸ ਲਾਗੂਕਰਨ ਨੂੰ ਸੌਂਪ ਸਕਦੀ ਹੈ।
import pycurl
transfer = pycurl.Curl()
try:
transfer.setopt(pycurl.URL, ftp_url)
transfer.setopt(pycurl.PROXY, "socks5h://proxy.example.net:1080")
transfer.setopt(pycurl.NOPROXY, "")
transfer.setopt(pycurl.WRITEDATA, output)
transfer.setopt(pycurl.CONNECTTIMEOUT, 10)
transfer.setopt(pycurl.TIMEOUT, 60)
transfer.perform()
finally:
transfer.close()
ftp_url ਐਪਲੀਕੇਸ਼ਨ ਦਾ FTP ਸਰੋਤ URL ਹੈ, ਅਤੇ output ਪਹਿਲਾਂ ਹੀ ਖੁੱਲ੍ਹੀ ਬਾਈਨਰੀ ਆਉਟਪੁੱਟ ਸਟ੍ਰੀਮ ਹੈ। ਟਾਈਮਆਉਟ ਸੰਭਾਵਿਤ ਫਾਈਲ ਆਕਾਰ ਅਤੇ ਕਨੈਕਸ਼ਨ ਅਨੁਸਾਰ ਚੁਣਨ ਵਾਲੀਆਂ ਉਦਾਹਰਨ ਸੀਮਾਵਾਂ ਹਨ। ਜਿੱਥੇ ਜਨਤਕ ਵਿਚੋਲਿਆਂ ਦੀ ਆਗਿਆ ਹੈ ਅਜਿਹੇ ਜਨਤਕ FTP ਸਰੋਤ ਲਈ, SOCKS5 ਪ੍ਰਾਕਸੀ ਸੂਚੀ ਪ੍ਰਾਕਸੀ URL ਲਈ ਉਮੀਦਵਾਰ ਦਿੰਦੀ ਹੈ; ਜਾਂਚੋ ਕਿ ਚੁਣਿਆ ਨੋਡ ਨਿਯੰਤਰਣ ਅਤੇ ਪੈਸਿਵ ਡੇਟਾ ਦੋਵੇਂ ਟਿਕਾਣਿਆਂ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।
socks5h ਟਿਕਾਣਾ ਹੋਸਟਨਾਮ ਦਾ ਹੱਲ SOCKS ਪ੍ਰਾਕਸੀ ਨੂੰ ਸੌਂਪਦਾ ਹੈ। NOPROXY ਜਾਣਬੁੱਝ ਕੇ ਖਾਲੀ ਹੈ ਤਾਂ ਜੋ ਵਿਰਾਸਤ ਵਿੱਚ ਮਿਲੀ no_proxy ਵਾਤਾਵਰਨ ਸੈਟਿੰਗ ਇਸ ਟ੍ਰਾਂਸਫਰ ਦਾ ਰਾਹ ਨਾ ਟਾਲੇ।
ਸਰਗਰਮ FTP ਬੰਦ ਹੀ ਰੱਖੋ: ਇਹ ਸਰਵਰ ਤੋਂ ਆਉਣ ਵਾਲੇ ਕਨੈਕਸ਼ਨ ਦੀ ਉਮੀਦ ਕਰਦਾ ਹੈ ਅਤੇ ਇਸ ਪ੍ਰਾਕਸੀ ਮੋਡ ਵਿੱਚ ਉਪਲਬਧ ਨਹੀਂ ਹੈ। ਪ੍ਰਾਕਸੀ ਦੀ ਬਾਹਰੀ ਨੀਤੀ ਨੂੰ FTP ਨਿਯੰਤਰਣ ਪੋਰਟ ਅਤੇ ਟ੍ਰਾਂਸਫਰ ਲਈ ਚੁਣੇ ਪੈਸਿਵ ਡੇਟਾ ਪੋਰਟ ਦੀ ਆਗਿਆ ਦੇਣੀ ਚਾਹੀਦੀ ਹੈ। ਇਸ ਲਈ ਸਿਰਫ਼ ਸਫਲ ਲੌਗਇਨ ਇਹ ਸਾਬਤ ਨਹੀਂ ਕਰਦਾ ਕਿ ਫਾਈਲ ਡਾਊਨਲੋਡ ਹੋ ਸਕਦੀ ਹੈ।
ਜਦੋਂ ਪ੍ਰਮਾਣਿਕਤਾ ਦੀ ਲੋੜ ਹੋਵੇ, ਵਿਚੋਲੇ ਲਈ PycURL ਦੇ PROXYUSERNAME ਅਤੇ PROXYPASSWORD ਵਰਤੋ; FTP ਸਰਵਰ ਦੇ ਪ੍ਰਮਾਣ FTP ਕਨੈਕਸ਼ਨ ਨਾਲ ਸੰਬੰਧਿਤ ਹਨ।