Я подключаюсь к FTP-серверу для клиента и загружаю любые файлы изображений, которые были обновлены с момента последнего импорта продукта.
Это мучительно медленно (даже для FTP).В настоящее время у меня есть этот скрипт, я прокомментировал в коде, что и для чего.
// get last import
$history = History::orderBy('created_at', 'desc')->first();
//get all images in directory (just file path no extra info)
$images = Storage::disk($disk)->files($directory);
$import = 0;
$skip = 0;
$error = 0;
foreach ($images as $image) {
// get the date the image was last updated
$modified = Storage::disk($disk)->lastModified($image);
try{
// if the image was modified after the last import then download, else skip
if($modified > $history->created_at->format('U')){
$import++;
$content = Storage::disk($disk)->get($image);
Storage::put($image, $content);
}
else{
$skip++;
}
} catch(\ErrorException $e){
$error++;
}
}
Из того, что я могу понять, главная проблема заключается в том, что Laravel открывает и закрывает FTP-соединение на каждой итерациидля каждого цикла.
Кто-нибудь знает, есть ли способ сохранить это соединение открытым во время выполнения скрипта или, возможно, лучшее решение, чем это?