我有一个网站,用户使用表单上传文件,并且发布并且很棒,但有一位客户坚持使用FTP代替。我已经确定了处理这个的三个选项,我想知道是否有人对哪个最好(或者如果有不同的溢出我应该问这个),或者如果有第四个更好的选项。
解决方案1:学习Linux。我可以编写一个cron作业,查看他们每5分钟上传一次的目录,然后将找到的文件发布到我的网站。
解决方案2:在grails中创建一个定时器驱动的服务,每5分钟在目录中查找一次。这就是我要开始尝试的。
解决方案3:这很难,但我确定可能让grails假装是一个FTP服务器,允许ftp转储就像一个帖子。我不知道从哪里开始这个解决方案,所以除非有一个插件,否则这不会发生。
答案 0 :(得分:3)
如果您想在列表中选择第二个选项,可以使用Grails Quartz plug-in来安排任务。
答案 1 :(得分:2)
我会选择2并按照建议使用Quartz插件(而不是cron)。处理Groovy中的文件很简单,你有许多例子,例如来自mrhaki的this。
如果您认为文件的处理将有更复杂的要求,您可以尝试从同一个mrhaki中使用this示例的Apache Camel。虽然我相信Spring有自己的框架可能更合适,但如果你沿着这条路走下去,你将不得不自己调查一下。
答案 2 :(得分:0)
Grails是一个Web框架,因此选项2和3不太理想。如果您的应用程序选项1中立即提供了ftped文件,那么我认为3是最快最简单的解决方案。
另一个选择是找到一个开源FTP服务器(有几个)并修改它以直接将文档导入您的系统。这将允许您的客户端使用他们喜欢的协议(FTP),并仍然实时将文件存入您的应用程序。
还有一个选择是提供一个类似客户端的FTP,它将使用您的grails应用程序作为服务器。这是否合适取决于客户坚持使用FTP的原因,您应该事先确定,以确保您的解决方案适合他们。