【问题标题】:Loading data from an FTP to Heroku App将数据从 FTP 加载到 Heroku 应用程序
【发布时间】:2012-09-06 16:05:05
【问题描述】:

先介绍一下背景。我一直在为我的公司开发一个库存应用程序,该程序的一部分从我公司销售产品的各个站点(亚马逊、网站等)获取订单。我们已经开始使用 Buy.com,他们目前存储订单历史的唯一方式是通过 FTP。我已经在本地工作了,但是当我将它加载到 heroku 时,它会出错(BrokenPipe)

ftp = Net::FTP.new('example.com')
ftp.login(user = "username", passwd = "pass")
files = ftp.chdir('/Orders')
files = ftp.list('*.txt')
(0..(files.count-1)).to_a.each do |i|
    ftp.getbinaryfile(files[i].split(' ').last, 'order.txt', 1024)
    # use order.txt to load data to db
end

问题在于它在 list 命令处开始出错。任何帮助将不胜感激。如果我遗漏了任何信息,请告诉我!

谢谢!

【问题讨论】:

  • 可以在命令行下试试吗?您可以运行 heroku console 并查看每个命令以查看发生了什么。
  • 是的,我做到了,这就是我得到 BrokenPipe 错误的原因......
  • this other SO question有我刚刚想到的答案。 stackoverflow.com/questions/5223763/…

标签: ruby-on-rails ruby database heroku ftp


【解决方案1】:

Heroku 是一个只读文件系统。所以直接这样做是不可能的。我建议尝试将信息转移到 S3,在那里您可以使用像 fog 这样的 gem 从 Heroku 中提取信息。

【讨论】:

  • 嗯,没有什么说我需要保存文件。是否有办法直接从 ftp 读取文本文件?
  • 另外,它在 list 命令上出错,它没有向 heroku 写入任何内容
  • 因为据我所知,ftp 没有纯 ruby​​ 实现,我的猜测是 Heroku 会明确禁止这样做。同样,像 curl 这样的程序也不能在 Heroku 中运行。
猜你喜欢
  • 2012-02-28
  • 1970-01-01
  • 1970-01-01
  • 2012-07-26
  • 2015-10-29
  • 2015-10-02
  • 2016-08-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多