RCurl kan skicka FTP genom en HTTP-tunnel
Använd httpproxytunnel när proxyn ska bära FTP-protokollet i stället för att ta emot en HTTP GET med en FTP-URL.
libcurl har två olika sätt att använda en HTTP-proxy för en FTP-URL. Utan tunnel kan den skicka en HTTP GET vars mål är FTP-URL:en, och be proxyn agera FTP-gateway.
När tjänsten i stället förväntar sig en HTTP CONNECT-tunnel aktiverar du RCurls motsvarande inställning:
result <- RCurl::getURL(
"ftp://ftp.example.net/pub/file.txt",
.opts = list(
proxy = "http://proxy.example.net:8080",
httpproxytunnel = TRUE
)
)
Proxyn måste tillåta anslutningar till FTP-serverns nödvändiga portar. En tjänst som är begränsad till CONNECT på 443 kan avvisa FTP:s kontrollanslutning även när vanlig HTTPS-surfning fungerar.
FTP använder också en separat dataanslutning för en listning eller överföring. En lyckad kontrollinloggning bevisar inte att det förhandlade datamålet är tillåtet genom mellanhanden.
Det här läget bär FTP-protokollet genom en tunnel; det krypterar inte vanlig FTP. När konfidentialitet krävs använder du det säkra protokoll som filservern stöder och motsvarande libcurl-bygge. RCurls tillgängliga protokoll beror på libcurl-biblioteket som det använder.