请原谅这个古怪的问题,但是有没有办法让我的Rails应用程序接收FTP传输?
我有每天的FTP上传,我没有控制,它上传数百个HTML页面,每天到我们现有的服务器。我想把这个站点移到Heroku上的纯Rails部署,但是我不能接触这个FTP上传(这仍然需要发生)。
由于Heroku不提供公共存储空间或FTP,所以我不能直接将文件上传到Heroku (我也不是真的想上传)。我喜欢的是将FTP上传指向我的Rails应用程序,然后让我的Rails应用程序接收并解析HTML文件,以提取我需要的信息,将其存储在数据库中,并执行我需要做的任何其他事情。(有点像RESTful操作,但通过FTP而不是任何标准的REST动词)。
这是完全可能的吗,还是我想它是疯了?如果可能的话,我该怎么做呢?
发布于 2011-04-05 20:01:43
Heroku不支持您的应用程序接收FTP。
如果你真的想要的话,你可以写一个关于接收FTP的Heroku插件。
发布于 2011-04-07 01:40:07
您可以使用cron安排一个rake任务,它将检索ftp服务器上的文件并将它们上传到您的数据库中。
下面是您的cron.rake文件应该是什么样子:
require 'net/ftp'
task :cron => :environment do
Dir.chdir("tmp") do
Net::FTP.open("ftp.example.com") do |ftp|
ftp.passive = true
ftp.login('login', 'password')
ftp.chdir("your_dir")
ftp.get("your_file")
# ... Load the files in the database here
end
end
end有两件事需要牢记:
由于Heroku不支持active mode.
ftp.passive = true您要执行的操作应包含在rake任务中,因为Heroku会在任务结束时擦除临时目录。发布于 2011-07-26 03:36:56
我还需要一个Heroku实例通过FTP接收文件。
我正在考虑使用Brick FTP。
当webhook发出文件已经上传的信号时,我计划下载文件内容并将其导入数据库。
https://stackoverflow.com/questions/5542916
复制相似问题