【问题标题】:Using RCurl with SFTP将 RCurl 与 SFTP 一起使用
【发布时间】:2012-09-04 17:09:36
【问题描述】:

我第一次尝试在 RCurl 包中使用ftpUpload

我尝试访问的站点使用 sftp 协议。我已确保安装包含建立安全连接功能的 libcurl 版本。

SFTP 列在 RCurl 可用的协议中:

curlVersion()$protocols
[1] "dict"   "file"   "ftp"    "ftps"   "gopher"
[6] "http"   "https"  "imap"   "imaps"  "ldap"  
[11] "pop3"   "pop3s"  "rtmp"   "rtsp"   "scp"   
[16] "sftp"   "smtp"   "smtps"  "telnet" "tftp"

然而,当我运行 fileUpload 函数时,我得到:

ftpUpload(what = "some_file.png",
          to = "userid:password@sftp://ec2-some-server-ip.compute-1.amazonaws.com")

Error in function (type, msg, asError = TRUE)  : 
Couldn't resolve host 'sftp'

我也尝试在参数化方面打破useridpassword,但我得到了相同的响应。

任何建议将不胜感激。

【问题讨论】:

  • 您的to 看起来不是有效路径。我希望它看起来更像:“sftp://ec2-some-server-ip.comput-1.amazonaws.com/path/to/some_file.png”。另外,“some_file.png”是您工作目录中文件的名称吗?
  • 我已经尝试过既指向根目录,又尝试了根目录中的子文件夹,就像您建议的那样。虽然我没有尝试将实际文件名放在最后。这仍然给出了相同的信息。是的,some_file.png 在我的工作目录中。
  • 您是否尝试使用“ftp://...”而不是“sftp://...”?
  • 是的,路径字符串的所有变体。相同的消息。
  • @Topher,我认为你应该发布一个答案并接受它,因为我有点猜测,你确切地知道你的电话是什么样的。

标签: r sftp rcurl


【解决方案1】:

用户名和密码必须在协议之后(这就是为什么您会收到找不到主机 sftp 错误):

ftpUpload(what = "some_file.png",
      to = "sftp://userid:password@ec2-some-server-ip.compute-1.amazonaws.com:22/path/some_file.png")

我还建议在主机之后包含端口号,以防它不是默认的,以及您希望它去的服务器上的文件路径。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多