0

嗨,我在工匠命令中有以下代码:

exec('rclone copy gdrive: --drive-root-folder-id '.$folderID.' storage/app/tmp/');
    //sleep(10);
    $platforms=array('Android','iOS','Linux','WindowsStore');
    foreach ($platforms as $platform ) {
        $existPlatform = Storage::exists('tmp/'.$platform);
        if($existPlatform){
            $isExists = Storage::exists('tmp/'.$platform.'/'.$uuid.'.zip');

            if ($isExists){
                
                $zip_file = 'storage/app/tmp/'.$platform.'/'.$uuid.'.zip';
                $zip = new ZipArchive ();
    
                if ($zip->open ($zip_file) === true) {
                    $zip->extractTo (storage_path ('app/tmp/'.$platform.'/'.$uuid.'/'));
                    }
                    $zip->close();
            
            }
            $files = File::allFiles('storage/app/tmp/'.$platform.'/'.$uuid.'');
            foreach($files as $file){
                if($bundleVersion!=1){
                    Storage::disk('s3-pruebas')->put(''.$platform.'/'.$bundleVersion.'/'.$uuid.'/'.$file->getFilename(), file_get_contents($file));
    
                }else{
                    Storage::disk('s3-pruebas')->put(''.$platform.'/'.$uuid.'/'.$file->getFilename(), file_get_contents($file));
    
                }
                
                
            }
        }
    }

基本上,代码所做的是将本地文件夹与谷歌驱动器上的一个本地文件夹同步。如果我将该代码作为 laravel 命令运行,它会完美运行。等待文件夹同步并继续。另一方面,如果我创建一个 Laravel Livewire 组件,它无法通过复制相同的代码甚至调用 Artisan 函数来执行命令来工作。使用 livewire 它只会为我创建 tmp 文件夹。

4

0 回答 0