argument('id'); $this->info(sprintf('Downloading images from home id = %s', $id)); $home = Home::where('id', $id)->first(); if (!$home instanceof Home) { $this->error(sprintf('No home with id «%s»', $id)); return 1; } if ($home->pictures_downloaded) { $this->error(sprintf('Pictures already downloaded for «%s»', $id)); return 1; } $pictures = $home->pictures; $newPictures = []; $countPictures = count($pictures); $this->info(sprintf('Downloading %u images', $countPictures)); foreach ($pictures as $picture) { $picture_content = file_get_contents($picture); $newPicture = sprintf('%s/%s', $id, basename($picture)); if (false === Storage::put($newPicture, $picture_content, 'public')) { $this->error(sprintf('Can\'t store «%s» into «%s»', $picture, $newPicture)); return 1; } $newPictures[] = sprintf('/storage/%s', $newPicture); sleep(1); } $home->pictures = $newPictures; $home->pictures_downloaded = true; $home->save(); $this->info('Download finished'); return 0; } }