加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 使用Net :: FTP实例方法`open` for FTP with custom por

发布时间:2020-12-17 01:30:46 所属栏目:百科 来源:网络整理
导读:我有一个远程ftp服务器. 我可以使用Cyber??Duck或终端ftp客户端连接到它. 当尝试连接Net :: FTP时,我可以这样做: ftp=Net::FTP.newftp.connect('url','port')ftp.login('username','password') 但是,这样做: Net::FTP.open('url','username','password')
我有一个远程ftp服务器.
我可以使用Cyber??Duck或终端ftp客户端连接到它.

当尝试连接Net :: FTP时,我可以这样做:

ftp=Net::FTP.new
ftp.connect('url','port')
ftp.login('username','password')

但是,这样做:

Net::FTP.open('url','username','password')

返回Errno :: ECONNREFUSED:连接被拒绝 – 连接(2).

似乎.open不接受端口参数,因为我使用自定义端口导致错误.但我需要使用.open方法,因为它在我使用的外部gem中使用(carrierwave-webdav).
这个的任何解决方法或我应该创建自己的分叉?
如何使用.open方法连接到我的ftp?

解决方法

如果您将主机参数传递给Net :: FTP.new或强制传递给Net :: FTP.open,它会立即尝试连接,因此您必须以其他方式传递非标准端口号,例如与主机名一起传递:

Net :: FTP.open(‘url:port’,’username’,’password’)

更新:
遗憾的是,Ruby网络库不解析主机字符串,因此您需要单独执行所有连接步骤:

ftp = Net::FTP.new  # don't pass hostname or it will try open on default port
ftp.connect('url',port)  # here you can pass a non-standard port number
ftp.login('username','password')
ftp.passive = true  # optional,if PASV mode is required

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读