http를 통해 Angular에서 Express로 방대한 양의 데이터를 보내는 가장 좋은 방법은 무엇입니까?

호르헤 피레스

txt 형식의 200MB 와 같은 거대한 데이터 세트가 있습니다. http 호출을 통해 데이터를 Angular로 보낼 수있었습니다 .

이제 모든 단일 "라인"에서 수행 할 수있는 소규모 편집을 로컬로 수행 한 후 데이터를 다시 보내야합니다 ( FASTA 파일 읽기 참조 , 이것이 파일 형식입니다).

놀랍게도 다시 보낼 수 없습니다 . 너무 큽니다. MongoDB에 저장하고 있습니다. 1 %를 보내면 간다는 것을 알아 차 렸습니다. 그래서 지금 내가 가진 해결책은 더 작은 데이터 덩어리로 데이터를 보내는 것입니다. 그럼에도 불구하고 여기에서 몇 가지 제안 된 접근 방식을 시도했지만 아무것도 시도하지 않았습니다.

여기에서 비슷한 질문을 찾았습니다. Angular 7 큰 게시물 http 요청 처리

내 질문은 : 데이터를 수신하기 위해 관찰자를 사용할 수 있습니다. 따라서 데이터는 작은 척으로 수신됩니다. 전체 데이터 세트를 입력 할 수있는 방법 또는 무언가를 만드는 명확한 방법이 있습니까?

가능한 힌트 : 1 %를 보낼 수 있다면 1 % 단위로 나누어서 차례로 보낼 수 있습니다. 하지만 Angular가 이전 호출이 완료 될 때까지 HTTP 호출을 보내지 않도록해야합니다. 그렇지 않으면 JavaScript 메모리 문제로 인해 익스프레스 앱이 충돌합니다.

여기에서 모든 것이 시작된이 질문의 첫 번째 버전을 참조하십시오. http 통화를 잠시 동안 보류하려면 어떻게해야합니까?

나는 코드를 제공하지 않기 때문에 이것이 열린 질문인지 확실하지 않습니다. 나는 여전히이 plataform을 사용하는 법을 배우고 있습니다. 때때로 우리는 닭고기에서 너무 많은 황금 알을 가져옵니다! 미리 감사드립니다! :)

토론

@zzfs는 현명하게 나에게 몇 가지 통찰력을 주었다. 나는 그것들을 고려할 것이다. 그럼에도 불구하고 저는 예제, 샘플로 코딩 할 수 있습니다. 적어도 저에게는 코드에서 배우는 것이 더 쉽습니다.

@zzfs는 "차이"를 고려하고 변경 사항 만 저장하도록 언급합니다. 이것이 저의 현재 접근 방식입니다. 제가이 현상금을 열었다 고 주장하는 이유는 가능한 한 강력한 시스템을 갖고 싶기 때문입니다. 즉, 사람이 너무 많은 댓글을 추가하면 차이가 적고 시스템이 충돌 할 수 있습니다. 한 번에 1.000 ~ 10.000 개의 댓글을 추가 할 가능성이 거의 없기 때문에 이러한 일이 발생할 확률은 적다고 생각합니다.

다른 문제는 현재 데이터 세트를 업로드하는 방법이 최선인지 알 수 없다는 것입니다. 로컬에 저장된 Mongo 및 Express의 앱에서 업로드하고 있습니다.

조 소로 신

이러한 대용량 파일을 클라이언트와주고받는 것은 예를 들어 zip과 같은 Blob을 다운로드하거나 서버에 Blob을 업로드하는 경우 (YouTube 또는 Dropbox 업로드를 생각해 볼 때)에만 의미가 있습니다. 다른 모든 사용 사례는 일반적으로 큰 전송없이 처리됩니다.

"작은 편집"만 수행한다고 말씀하셨습니다. 이 경우에만 보내야 의미 의 차이 가 아니라 전체를 . 귀하의 질문이 너무 광범위하여 더 명확한 답변을 드릴 수는 없지만 큰 파일이 JSON 또는 텍스트 파일이고 사용자가 그 안의 내용을 변경 한 경우 해당 변경 사항의 위치를 ​​매우 쉽게 표시하고 함께 보낼 수 있습니다. 실제 변경된 페이로드와 함께. 그러면 서버 (노드가 Express를 실행하고 있습니까?)는 차이를 확인하고 변경 사항을 200MB 파일에 적용 할 수 있어야합니다.


여러 HTTP 요청을 청크하는 것은 물론 지원되며 자주 발생합니다. 정말 200MB 파일을 업로드하고 싶을 때 파일을 분할 switchMap하여 순차적 업로드 또는 forkJoin병렬 요청에 사용할 수 있습니다.

그러나 당신은 여전히 할 것 몇 가지 주의가 아니라 DIFF-검사 방법은 위에서 설명한 구현에 따라 결정됩니다 있도록 서버 (가장 사소한 경우에 청크를 결합)에 후 처리의 종류.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관