R:更改端口以连接 SFTP 服务器

R: change port to connect with SFTP server

我使用以下代码连接到 ftp 服务器:

url       <- "ftp://MyServer"
userpwd   <- "MyUser:MyPass"
filenames <- getURL(url, userpwd = userpwd, ftp.use.epsv = FALSE, dirlistonly = TRUE, port = 22) 
filen     <- "MyFile.csv"      
rawdata   <- getURL(paste(url, filen, sep = ""), userpwd = userpwd, crlf =  TRUE)

文件将被移动到 SFTP 服务器,因此我需要更改输入。这个新的 SFTP 服务器通过端口 22 而不是标准端口 21 访问。目前连接失败并出现以下错误

Error in function (type, msg, asError = TRUE)  : 
  Failed to connect to MyServer port 21: Connection refused

它占用了错误的端口,但是我如何告诉 R 选择端口 22?

您需要在 URL 中指定 SFTP 协议,因此行

url       <- "ftp://MyServer"

应该变成

url       <- "sftp://MyServer"

getUrl 将使用 SSH 端口 (22)。