현재 1GB 크기의 큰 JSON 파일 다운로드 링크가 있습니다. 내가 할 수있는 일은 안드로이드 앱을 사용하여 다운로드 한 다음 gson을 통해 스트리밍하는 json의 콘텐츠를 구문 분석하는 것입니다.JSON을 서버 측에서 분할 한 다음 클라이언트 측에서 결합 및 스트리밍하는 방법
그러나 사용자가 1GB의 대용량 파일을 다운로드하려고 할 때 문제가 발생했습니다.
- 다운로드 도중에 인터넷이 고장났다면 어떻게해야합니까?
- 사용자의 기기에 갑자기 공간이 부족한 경우 어떻게해야합니까?
위의 시나리오를 기반으로 다운로드가 처음부터 다시 시작되어야합니다.
이 문제를 해결하기 위해 JSON을 여러 부분으로 나눌 수있는 가능한 해결책을 생각했습니다. 따라서 앱은 일부 파일이 이미 다운로드되었는지 확인할 수 있으며 앱이 마지막으로 다운로드 한 부분에서 다운로드하여 데이터와 시간을 절약하기 때문에 앱이 다시 시작된다는 것을 의미합니다.
제 질문은 어떻게 큰 json 파일을 분할 할 수 있습니까? 그것은 매우 큰 json 파일입니다. 특별한 것은 없습니다. 내가 JSON 파일을 분할하고 만들 수있어 경우,
$file = $target_dir.'/json.json';
if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($file).'"');
header('Expires: 540');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
readfile($file);
exit;
}
또한 :
$fp = fopen($target_dir.'/json.json', 'w');
fwrite($fp,json_encode(array('reading'=>$r,'book'=>$b,'article'=>$a,'month'=>$m, 'status'=>$status)));
fclose($fp);
는 다음을 통해 링크를 생산 : 나는 코드로 MySQL의에서 JSON 파일을 생성하는 PHP를 사용하고 있습니다 앱이 사용할 링크를 다운로드하십시오. 안드로이드 앱을 통해 어떻게 가입하나요? 결합이 필요하지 않은 경우 청크로 파싱 할 수 있습니까?
이런 종류의 문제에 대한 최선의 방법인지는 모르겠지만 실제 레이싱 및 GTA san andreas와 같은 3D 모바일 게임은 큰 파일을 다운로드하거나 중간 크기의 파일을 다운로드하여 완료하는 데 시간이 오래 걸리는 것으로 나타났습니다. .
감사합니다. 그렇다면 아픈 사람들이 클라이언트 측에서 바로 그들과 합류합니까? 추가 또는 뭔가처럼 –
그래, 그게 효과가있다. –