从/ tmp上传vsftpd ftp客户端上传文件,上传文件后,将它们移动到原始文件夹

我的应用程序遇到问题。 场景是,每隔1分钟运行一个php cron,它处理uploads文件夹,其中文件通过ftp服务器(vsftpd)上传。 如果服务器正在上传一个1GB的文件,即使没有完全上传,php cron也会处理这些文件。 我不能改变cron的时间,但是我想知道,vsftpd是否有任何function,可以通过它上传/tmp文件,然后在上传完成后移动到原始文件夹?

不,它没有内置此function。
有这个解决scheme虽然。

最好的方法是告诉上传程序使用不同的名称上传file-whatever.txt.incomplete ,例如file-whatever.txt.incomplete ,一旦上传完成,将其重命名为普通名称。
优点是:
重命名是快速的(因为文件在同一个文件系统上)。
如果上传没有正确完成,则不会重命名。
缺点当然,你需要改变上传过程和PHP的cronjob(忽略*.incomplete文件)。

另一种解决scheme是将其上传到您build议的其他文件夹中,并使用incron进行观看。
有了这个,你可以看一个文件夹,并将完成的文件移动到不同的文件夹。
缺点:如果上传失败,它仍然会被移动并可能被处理。