RCurl kann FTP über einen HTTP-Tunnel senden
Verwenden Sie httpproxytunnel, wenn der Proxy das FTP-Protokoll übertragen soll, statt ein HTTP GET mit einer FTP-URL zu empfangen.
libcurl kennt zwei verschiedene Wege, einen HTTP-Proxy für eine FTP-URL zu nutzen. Ohne Tunnel kann es ein HTTP GET senden, dessen Ziel die FTP-URL ist, und den Proxy bitten, als FTP-Gateway zu wirken.
Wenn der Dienst stattdessen einen HTTP-CONNECT-Tunnel erwartet, aktivieren Sie die entsprechende Option von RCurl:
result <- RCurl::getURL(
"ftp://ftp.example.net/pub/file.txt",
.opts = list(
proxy = "http://proxy.example.net:8080",
httpproxytunnel = TRUE
)
)
Der Proxy muss Verbindungen zu den erforderlichen Ports des FTP-Servers zulassen. Ein Dienst, der auf CONNECT über 443 beschränkt ist, kann die FTP-Steuerverbindung ablehnen, selbst wenn gewöhnliches HTTPS-Browsen funktioniert.
FTP nutzt außerdem eine separate Datenverbindung für eine Auflistung oder Übertragung. Eine erfolgreiche Anmeldung an der Steuerverbindung belegt nicht, dass das ausgehandelte Datenziel durch den Vermittler erlaubt ist.
Dieser Modus überträgt das FTP-Protokoll durch einen Tunnel; er verschlüsselt einfaches FTP nicht. Wenn Vertraulichkeit erforderlich ist, verwenden Sie das vom Dateiserver unterstützte sichere Protokoll und den passenden libcurl-Build. Die verfügbaren Protokolle von RCurl hängen von der verwendeten libcurl-Bibliothek ab.