2011-01-20 2 views
0

이 질문에 대한 세 번째 편집이며 더 이상 관련이 없으므로 원본 텍스트를 삭제했습니다.대규모 (20 - 30 기가) 파일을 클라이언트에서 서버로 업로드하는 가장 좋은 방법은 무엇입니까?

사용자가 대용량 파일을 서버에 업로드 할 수있게 해주는 클라이언트를 작성해야합니다. AJAX와 Flash는 파일을 제출하기 전에 파일을 메모리에 읽어 들이기를 고집하는 것처럼 보인다. 나는 사전 구축 된 애플릿을 둘러 보았지만 아무 것도 기대하지 않았다.

이 작업을 수행하는 방법에 대한 조언이 필요합니다. 문제는 클라이언트 측과 서버 측 모두입니다. PHP는 아마도 이러한 파일을 수집하기위한 최상의 서버 측 솔루션이 아닙니다 ... 그 문제에 대해 서버는 64GB 이상이어야 4Gigs 이상의 파일을 처리 할 수 ​​있습니까?

클라이언트에서는 브라우저 기반으로하는 것이 좋지만 플랫폼 응용 프로그램으로 작성하는 것이 더 좋을 수도 있다고 생각합니다 (훨씬 더 번거 롭긴하지만).

저는 상대적으로 신뢰성이있는 한 무엇이든 열려 있습니다.

답변

1

이미 업로드 된 플래시 업 로더는 이미 사용자의 필요를 지원하거나 시작하는 데 도움이 될 수 있으며 Google에서 충분히 쉽게 사용할 수 있습니다. 즉, 멀티 기가 바이트 파일 업 로더의 경우 대용량 파일을 청크로 업로드하는 업 로더를 설계하고 네트워크 연결이 끊어진 경우 복구가 가능할 것입니다. 1.9GB를 업로드하면 끔찍한 일이 될 것입니다. 그 다음 .1GB의 업로드와 연결이 끊어졌습니다! 또한 PHP 쪽에서는 메모리를 관리하기가 훨씬 쉬운 작은 조각 만받을 수 있습니다. 일단 모든 것이 수신되면 PHP 쪽에서 모든 청크를 함께 결합 할 수 있습니다.

플래시 클라이언트 측과 서버 측은 이러한 종류의 디자인과 상호 운용해야합니다. 나는. 서버는 사용자 지정 청킹 프로토콜을 이해해야합니다. Flash 클라이언트가 업로드 한 청크를 압축 한 다음 서버에서 해당 청크를 압축 해제하는 것과 같은 클라이언트 대역폭 절약 방법을 고려할 수 있습니다.

강력한 "일시 중지/계속"사용자 프로세스를 만들기 위해 플래시 로컬 저장소를 고려할 수 있습니다. 예를 들어, 2GB 파일의 1/2GB를 업로드하면 전원이 꺼집니다. 업로드 페이지로 돌아가서 내가 중단 한 곳에서 플래시를 다시 시작하는 것이 좋을 것입니다. 플래시 로컬 스토리지가이를 지원할 수있는 방법 일 수도 있습니다. http://www.macromedia.com/support/documentation/en/flashplayer/help/help02.html. 로컬 스토리지를 사용하여 업로드중인 사용자의 로컬 파일 경로와 마지막으로 성공적으로 업로드 된 청크를 추적 할 수 있습니다.

보안 환경에 배포하려는 경우 배포하려는 위치에 따라 Flash 클라이언트에서 인증을 지원해야 할 수도 있습니다. 즉 플래시 아이디어를 전혀 도움이된다면

그냥 내가 차임 줄 알았는데, 알고하지 마십시오.

나는 순수한 AJAX 방식이 시나리오를 업로드 멀티 GB를 위해 일하는 것이 잘 모르겠어요.

+0

당시 우리가 테스트 한 업로드 옵션 (1 년 전)은 ISA 프록시를 지원하지 않았기 때문에 플래시를 사용하지 않았습니다. 우리가 Silverlight로 옮긴 대부분의 Microsoft 네트워크에서 문제가 발생했기 때문에 플래시를 사용하지 않았습니다. 존재하지만 작은 interop. –

+0

플래시의 RTMP 프로토콜을 사용 했습니까? ISA 서버는 모든 프로토콜/포트를 지원해야합니다. 플래시가 표준 HTTP를 통해 통신하지 않는 경우 플래시 프로토콜을 허용하도록 방화벽 구성을 변경했을 수 있습니다. Silverlight 솔루션이 Flash 솔루션과 동일한 프로토콜/포트를 사용 했습니까? –

+0

감사합니다. shan. 나는 당신의 답변을 upvoting지만, 일부 대안에 대한 열어 두겠습니다.나는 확실히 파일을이 부분으로 분해하고 싶지 않습니다. 차라리 Java를 사용하고 파일을 한 가지로 업로드 할 수 있습니다. 이 애플릿 http://www.radinks.com/upload/이이를 수행합니다. 내가 찾은 것을 다시보고하겠습니다. –

관련 문제