RCurl は HTTP トンネル経由で FTP を送信できる
プロキシが FTP URL を含む HTTP GET を受け取るのではなく FTP プロトコルを運ぶ場合は、httpproxytunnel を使用します。
libcurl には、FTP URL に HTTP プロキシを使う方法が 2 つあります。トンネルを使わない場合、FTP URL をターゲットとする HTTP GET を送信し、プロキシに FTP ゲートウェイとして動作するよう求めます。
サービスが代わりに HTTP CONNECT トンネルを期待する場合は、RCurl の対応するオプションを有効にします。
result <- RCurl::getURL(
"ftp://ftp.example.net/pub/file.txt",
.opts = list(
proxy = "http://proxy.example.net:8080",
httpproxytunnel = TRUE
)
)
プロキシは FTP サーバーに必要なポートへの接続を許可する必要があります。443 番の CONNECT だけに制限されたサービスでは、通常の HTTPS 閲覧が機能していても FTP の制御接続を拒否することがあります。
FTP は一覧表示や転送に別のデータ接続も使用します。制御ログインの成功は、ネゴシエートされたデータ宛先が仲介者を通じて許可されていることを証明しません。
このモードは FTP プロトコルをトンネルで運びますが、平文の FTP を暗号化するものではありません。機密性が必要な場合は、ファイルサーバーがサポートする安全なプロトコルと対応する libcurl ビルドを使用してください。RCurl で利用できるプロトコルは、使用する libcurl ライブラリによって異なります。