2017-04-19 12 views
0

큰 파일 (동시에 동시 사용자가 파일을 업로드 할 수 있음)을 업로드하고 사용자 당 순차적 파일 업로드를 허용하고 스로틀 기법 (자바 사용)을 통해 업로드를 제어하려고합니다.자바/자바 스크립트를 사용하여 대역폭 기술을 조절하면서 자바에서 큰 파일을 업로드 하시겠습니까?

또한 더 많은 시간이 걸리면 중간에 업로드 프로세스를 중단하고 싶습니다.

비록 내가 다양한 기사와 자료를 통해 연구 중이지만 그것에 대해 연구하고 있습니다.

당신이 이미 구현 한 경우 몇 가지 생각이나 통찰력을 제안 할 수 있습니까?

+0

대용량 파일의 기준 - 파일> 50MB (최대 800MB) – pjason

+0

시도한 것을 추가하십시오. 그렇지 않으면 질문이 닫힙니다. –

답변

0

나는 과거에 스로틀 된 SFTP를 구현했습니다. 핵심은 주기적 마이크로 지연으로 서버 수신단에서 제어 루프를 작성하여 다음 지연 지속 시간이 고정 단위 시간당 수신 된 바이트 수에 의해 결정되는 것입니다. 원하는 것보다 단위 시간당 더 많은 바이트를 읽는다면 지연을 점차적으로 증가 시키십시오. 적게 읽는다면 지연을 점차적으로 줄이십시오.

단일 다운로드의 최대 속도를 결정하기 위해 병렬 다운로드 수를 고려해야합니다. 불행히도 그 코드는 고용주를 위해 작성되었으므로 편리하지 못하거나 일부 중요한 발췌 문장을 제공 할 것입니다.

나는이 목적을 위해 전략적으로 openssh를 수정 한 것을 기억합니다. 수정해야 할 부분은 소수에 불과했습니다.

+0

우리 requirment에 따라 우리는 브라우저에서 파일을 업로드 하고이 업로드 프로세스는 대역폭을 제어하기 위해 조절해야합니다. Pls suggest – pjason

+0

브라우저가 파일을 서버의 대상으로 보내야하므로 키에 수신 끝 조절판이 있어야합니다. 수신 측의 어떤 소프트웨어가 파일을 가져 오는 지 알고 있습니까? 서버 이외에는 얼마나 많은 병렬 업로드가 일어나고 있는지 알 수 있으므로 각 브라우저에서 예상되는 업로드 속도를 줄일 수 있습니다. – Jason

+0

서버가 병렬 업로드를 추적해야한다는 데 동의합니다. 브라우저에서 파일을 업로드한다고 가정 해 보겠습니다. 업로드 진행 여부에 관계없이 진행 상황을 추적해야하며 필요한 경우 중지해야합니다. 서버 측에서 조절, 서버 측에 대한 apache cxf mtom 또는 사용자 정의 Java 코드를 사용 했습니까? – pjason

0

fineuploader javascript 라이브러리를 사용하여 대용량 파일 크기 업로드 (30MB에서 최대 1GB까지 대용량 파일을 처리하므로). FineUploader는 청크 크기를 구성하고, 일시 중지를 활성화하고, 업로드를 계속할 수있는 브라우저를 닫고 진행률 표시 줄 등에서 계속 진행할 수있는 100 % 오픈 소스 라이브러리입니다.

서버 측에서 사용자 정의 서블릿 (java에서 - 우리의 솔루션은 java를 기반으로합니다.) 청크를 업로드하려면 모든 청크가 업로드 될 때 병합하십시오.

받아서 용액 단계는 다음과 같다 : [* fineuploader 스크립트 (eg.30MB 위해) 구성 청크 크기] 1. 우리는 파일을 업로드 fineuploader 스크립트 크기의 덩어리 전체 크기 2 30MB의로 파일을 분할 청크가 업로드되어 사용자 정의 서블릿을 호출합니다 (같은 방식으로 모든 청크가 업로드됩니다 (우리의 요구 사항에 따라 순차적으로 또는 동시에 업로드 할 수 있음) 3. 모든 청크가 서버 측에 업로드되면 파일

에 병합됩니다

fineuploader 스크립트 라이브러리를 사용자 정의하고 사용하는 것이 좋습니다 (유사한 요구 사항이있는 경우)