使用 PHP 在后台异步上传文件的最佳方法是什么


What is the best way to async upload files in background with PHP?

在我的应用程序中,用户将上传文件(小文件和文件大文件)。我喜欢将文件存储在S3或FTP或任何其他存储服务中。

我的计划是将文件从带有AJAX(带进度条)的客户端上传到我的PHP服务器,然后在后台将它们传输到目标存储。我想异步完成最后一部分(在后台)。在将文件从服务器上传到存储后,我还需要执行一些任务(如数据库更新和清理)。

我以前的方法是使用 nohup(例如:如何使用 nohup 在 linux 中将进程作为后台进程运行?),但它有一些缺点,我建议不要使用它。

我正在使用 Laravel,所以我正在考虑带有豆茎的队列。我知道队列适合发送电子邮件、图像处理和类似的东西,但我以前从未使用过它,所以我不知道它是否适合后台文件上传。 这是好方法吗?或者也许有更好的方法可以做到这一点?

您可以尝试调度程序。看看这里:

https://github.com/Indatus/dispatcher

来自网站:"Dispatcher是一个Laravel工匠命令调度工具,用于在你的项目中调度工匠命令,所以你在部署时不需要触摸你的crontab。