How to open FTP connection using Ruby's Net::FTP with a custom port?

更新于
2026-10-09 21:04:42
1阅读来源:SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计338个文字,预计阅读时间需要2分钟。

How to open FTP connection using Ruby's Net::FTP with a custom port?

我拥有一台远程FTP服务器。可以使用Cyber Duck或终端ftp客户端连接到它。当尝试连接到Net:FTP时,可以这样操作:ftp=Net:FTP.newftp.connect('url', 'port') ftp.login('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,它会立即尝试连接,因此您必须以其他方式传递非标准端口号,例如与主机名一起传递:

How to open FTP connection using Ruby's Net::FTP with a custom port?

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

本文共计338个文字,预计阅读时间需要2分钟。

How to open FTP connection using Ruby's Net::FTP with a custom port?

我拥有一台远程FTP服务器。可以使用Cyber Duck或终端ftp客户端连接到它。当尝试连接到Net:FTP时,可以这样操作:ftp=Net:FTP.newftp.connect('url', 'port') ftp.login('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,它会立即尝试连接,因此您必须以其他方式传递非标准端口号,例如与主机名一起传递:

How to open FTP connection using Ruby's Net::FTP with a custom port?

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