libcurl a deux façons différentes d'utiliser un proxy HTTP pour une URL FTP. Sans tunnel, il peut envoyer un HTTP GET dont la cible est l'URL FTP, en demandant au proxy de servir de passerelle FTP.

Lorsque le service attend plutôt un tunnel HTTP CONNECT, activez l'option correspondante de RCurl :

result <- RCurl::getURL(
  "ftp://ftp.example.net/pub/file.txt",
  .opts = list(
    proxy = "http://proxy.example.net:8080",
    httpproxytunnel = TRUE
  )
)

Le proxy doit autoriser les connexions vers les ports requis du serveur FTP. Un service limité à CONNECT sur 443 peut refuser la connexion de contrôle FTP même lorsque la navigation HTTPS ordinaire fonctionne.

FTP utilise aussi une connexion de données distincte pour un listage ou un transfert. Une connexion de contrôle réussie ne prouve pas que la destination de données négociée est autorisée à travers l'intermédiaire.

Ce mode transporte le protocole FTP dans un tunnel ; il ne chiffre pas le FTP simple. Lorsque la confidentialité est requise, utilisez le protocole sécurisé pris en charge par le serveur de fichiers et la version de libcurl correspondante. Les protocoles disponibles de RCurl dépendent de la bibliothèque libcurl utilisée.

Articles similaires