在我的项目中,我有一个文件上传功能.文件通过FTP上传.我需要配置一个侦听器,它将检查新文件并仅在文件上载完成时调用脚本.因为如果我在检测到新文件后立即运行此脚本,它可以开始处理未完全上载的文件,这将导致错误.任何人都可以告诉LINUX这是否可行,我该怎么做?
Jor*_*ril 12
我尝试使用inotify,事件代码IN_CLOSE_WRITE.
阿帕奇"米娜" FTP服务器(JAVA)也许能够做你想做的,包括检测上传失败,提到这里
引用:
从Ftplet.afterCommand,你应该能够看到答复.对于FtpServer可以检测到的那些失败的传输(导致SocketException或IOException),这应该是426或551.
这里有 Ftplet概述,包括响应代码.
afterCommand方法签名:
FtpletResult afterCommand(FtpSession session, FtpRequest request, FtpReply reply)
Run Code Online (Sandbox Code Playgroud)
你要检查reply.getCode()你的覆盖方法.您应该是子类,DefaultFtplet而不是Ftplet从头开始实现接口.
请注意,它DefaultFtplet::afterCommand显示了如何检测正在响应的客户端命令.您可以检查STOR或STOU回复代码426或551检测上传失败.
但是,如果客户端应用程序决定将传输视为文件只是比它短,则可能无法检测到客户端故意终止的上载.在无意中断连接的情况下,我认为回复代码检查将起作用.测试可能是杀死客户端应用程序,或者关闭客户端计算机的网络接口.
要处理成功上传(您的原始问题),您可以查找成功回复代码,即226.