libcurl có hai cách khác nhau để dùng proxy HTTP cho một URL FTP. Không có đường hầm, nó có thể gửi một HTTP GET có đích là URL FTP, yêu cầu proxy đóng vai trò cổng FTP.

Khi dịch vụ thay vào đó mong đợi một đường hầm HTTP CONNECT, hãy bật tùy chọn tương ứng của RCurl:

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

Proxy phải cho phép các kết nối tới các cổng cần thiết của máy chủ FTP. Một dịch vụ chỉ giới hạn ở CONNECT trên 443 có thể từ chối kết nối điều khiển của FTP ngay cả khi duyệt HTTPS thông thường vẫn hoạt động.

FTP cũng dùng một kết nối dữ liệu riêng cho việc liệt kê hoặc truyền tệp. Đăng nhập điều khiển thành công không chứng minh rằng đích dữ liệu đã thương lượng được cho phép qua trung gian.

Chế độ này mang giao thức FTP qua một đường hầm; nó không làm cho FTP thường được mã hóa. Khi cần bảo mật, hãy dùng giao thức an toàn mà máy chủ tệp hỗ trợ và bản dựng libcurl tương ứng. Các giao thức có sẵn của RCurl phụ thuộc vào thư viện libcurl mà nó dùng.

Bài viết liên quan