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 ସଂଯୋଗର ଅନ୍ତର୍ଗତ।

ସମ୍ପର୍କିତ ପ୍ରବନ୍ଧ