无法使用 Ruby 从 Amazon EC2 实例下的一个 FTP 服务器获取二进制文件

Cannot get binaryfile using Ruby from one FTP server under Amazon EC2 instance

我有一部分代码是从一个 FTP 服务器获取二进制文件流。

它可以在我的 Ubuntu 上运行,但是当我在 Amazon EC2 实例上尝试时,代码无法从 FTP 服务器获取二进制文件。

我尝试切换到另一个名为 open-uri 的 gem。它可以在我的本地 PC 和远程 EC2 实例上获取二进制文件流。

我使用EC2实例的默认VPC

我已经在 EC2 上打开了端口 20 和 21。我用了dig ftp.cga.ct.gov,EC2上有答案。

有不明白的地方请各位大侠指出

下面是我在初始化方法中的代码Ruby class:

def initialize(session_id)
  @session_id = session_id
  @count  = 1
  tries   = 10
  begin
      ftp = Net::FTP.new("ftp.cga.ct.gov")
      ftp.read_timeout = 500
      ftp.login
      ftp.chdir('/pub/data/')
      bill_str= ftp.getbinaryfile("bill_info.csv", nil)
      @bill_array = bill_str.delete("\"").split("\r\n")[1..-1]
  rescue Exception => e
      if (tries -= 1) > 0
        sleep 10
        print "re-connect"
        retry
      else
        print "Cannot open FTP\nThe error message is #{e}\n#{e.backtrace.join("\n")}"
     end
  else
    return true
  end
  super
end 

我认为这完全是因为亚马逊内部子网错误。检查我的另一个问题和我自己的答案。