path; $this->info('Processing: '.$filename); // If the file is already saved locally skip to next one if (Storage::disk('local')->exists('public/'.$filename)) { $this->info('File already exists locally, skipping'); continue; } // Copy the file from S3 to the local filesystem if (! Storage::disk('s3')->exists($filename)) { $this->error('File does not exist on S3'); continue; } $contents = Storage::disk('s3')->get($filename); Storage::disk('local')->put('public/'.$filename, $contents); // Copy -medium and -small versions if they exist $filenameParts = explode('.', $filename); $extension = array_pop($filenameParts); $basename = trim(implode('.', $filenameParts), '.'); $mediumFilename = $basename.'-medium.'.$extension; $smallFilename = $basename.'-small.'.$extension; if (Storage::disk('s3')->exists($mediumFilename)) { Storage::disk('local')->put('public/'.$mediumFilename, Storage::disk('s3')->get($mediumFilename)); } if (Storage::disk('s3')->exists($smallFilename)) { Storage::disk('local')->put('public/'.$smallFilename, Storage::disk('s3')->get($smallFilename)); } } } }