使用Laravel Storage从FTP上卸载大的zip文件失败

问题描述

我想从FTP服务器下载zip文件(从200mb到3GB)到我的应用程序服务器的本地目录。为此,我编写了一个带有文件名的作业,构造了相关的路径/目录,然后将文件从ftp流到本地目录。不幸的是,该作业始终无法通过以下消息显示文件

Illuminate \ Queue \ MaxAttemptsExceededException: App \ Jobs \ DownloadFileFromFtp已尝试过多次或已运行 太长。该作业可能先前已超时。在 /home/forge/staging.vehicle-service.faaren-global.de/vendor/laravel/framework/src/Illuminate/Queue/Worker.PHP:648

我正在通过PHP artisan queue:work --timeout=0运行队列工作器,因此应该没有超时。

这是我的工作:

private function downloadFIleFromFtp(): bool
{
    try {
        if(!file_exists(storage_path('app/temp/'))){
            mkdir(storage_path('app/temp/'));
        }

        $destination = storage_path('app/temp/' . $this->import->unique_filename);

        $ftpdisk = Storage::disk($this->import->disk);

        $stream = $ftpdisk
            ->getDriver()
            ->readStream($this->import->filename);

        file_put_contents($destination,stream_get_contents($stream),FILE_APPEND);
        return true;
    } catch(\Exception $ex){
        $log = ImportLog::createWithException($ex,"Download from ftp Failed");
        $this->import->logs()->save($log);
        return false;
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)