Самый эффективный способ получить данные CSV на сервер - PullRequest
0 голосов
/ 26 января 2019

Я хотел посмотреть, смогу ли я получить от сообщества информацию о загрузке файла CSV. Эти файлы огромны, говорят несколько ГБ. Из-за ограничений сервера я не могу использовать загрузку чанков.

Допустим, у меня очень стандартный ввод файла

<input type="file" class="form-control-file" name="fileToUpload">

При изменении или отправке я могу передать это по маршруту к своему бэкэнду. Функция контроллера может выглядеть примерно так

public function uploadFilePost(Request $request){
    $request->validate([
        'fileToUpload' => 'required|file',
    ]);

    $request->fileToUpload->store('csvFiles');

    return back()
        ->with('success','You have successfully uploaded the file.');
}

Большая проблема заключается в том, что для файлов размером несколько ГБ этот процесс занимает несколько часов, и это проблема, поскольку вам нужно держать браузер открытым, пока этот запрос выполняется.

Так что на самом деле мой первый вопрос такой. Я могу проанализировать файл на клиенте, используя что-то вроде PapaParse . Это буквально занимает несколько секунд, чтобы разобрать. Теперь, когда файл проанализирован в строку или массив JSON, это каким-либо образом уменьшит размер файла?

Мой второй вопрос заключается в том, что синтаксический анализ не влияет на размер, но теперь у меня есть все эти данные CSV в локальной переменной. Могу ли я отправить это на сервер без необходимости ждать пользователя часами? Я посмотрел на очереди, это будет вариант, или это будет делать только когда данные на резервной копии?

Действительно, любая информация приветствуется. Может быть, я в замешательстве, я просто пытаюсь найти наиболее эффективный способ отправки большого объема данных на мой сервер.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...