Мне нужно прочитать большой файл json размером примерно 500 МБ из SFTP.Я использую хранилище Laravel для чтения файла.Сначала я загружаю файл в папку локального хранилища / приложения / общедоступной, затем построчно считываю файл из локальной папки и добавляю содержимое файла в переменную.После этого я декодирую данные json и сохраняю каждую запись в базе данных.Но иногда я получаю ошибку исчерпания памяти и даже ошибку максимального тайм-аута.Я увеличил предел памяти 1024M и время выполнения до 600, используя функции php ini, и перепробовал много решений, но ни одно из них не работает.Ниже приведен мой код:
$stream = Storage::disk('incoming_feed_server')->getDriver()->readStream($fileName);
while(ob_get_level() > 0) ob_end_flush();
//save file onto local system
Storage::disk('public')->put($newFileNAmeWithDate, $stream);
$handle = fopen(storage_path('app/public/'.$newFileNAmeWithDate), "r") or die("Couldn't get handle");
$content = '';
if ($handle) {
while (!feof($handle)) {
$content.= fgets($handle, 4096);
}
fclose($handle);
}
Пожалуйста, дайте мне знать правильное решение этой проблемы.Заранее спасибо!