2011-02-16 4 views
4

사용자가 파일 목록을로드하고 해당 파일을 비디오 인코딩을 위해 Google 서버로 전송할 수있게 해주는 Java 응용 프로그램을 구축 중입니다. 필자는 파일 전송 이전과 이후에 파일을 관리하기위한 API를 이미 구축했지만 파일을 실제로 옮길 때 좋은 전송 프로토콜을 결정해야합니다.대용량 파일을 Java를 통해 원격 서버로 전송하는 가장 신뢰할 수있는 방법은 무엇입니까?

지금 나는 아파치 코 몬즈 인터넷를 사용하는쪽으로 생각이 기울고있어 (참조 : http://commons.apache.org/net/를) 패키지를 함께 FTP와 서버에 클라이언트 컴퓨터에서 파일을 이동합니다. 일단 보안 API 호출을 사용하여 파일을 이동해야하는 곳으로 이동시킵니다.

이것이 최선의 경로입니까? 큰 파일 (1 GB 이상)을 안정적으로 전송할 수있는 더 좋은 방법이 있습니까? 이 방법론을 사용하여 손상된 다운로드를 재개 할 수있는 방법이 있습니까? 신뢰할 수없고 깨진 업로드를 재개 할 수 없기 때문에 전통적인 HTTP POST 요청을 피하고 싶습니다.

감사합니다.

+0

나는 당신이 당신의 접근 방식으로 끊어진 연결을 재개 할 수 있다고 생각하지 않는다. 그것이 이력서를지지한다고 생각하십니까? – phillip

+0

FTP를 위해 Commons Net을 사용하여 많은 성공을 거두었습니다. 이전의 버전을 사용하고 있기 때문에 내가 가지고있는 유일한 큰 문제가 있습니다. 오른쪽 전송 모드 (수동, 비 수동) 그냥 중단됩니다 ... 예외, 아니 충돌, 그냥 ... 교수형 ... – Shaded

+0

내가 아는 한 Commons Net과의 끊어진 연결을 재개 할 수 없다는 것 - 그래서 그 중 하나입니다. 내가 제안을 요구하는 이유 ... :) 또한 수동적 인 것과 비 수동적 인 팁 덕분에 꽤 많은 두통을 덜어 줬을 것입니다. – FunnyLookinHat

답변

1

Amazon S3를 사용하는 것이 솔루션 옵션인지는 언급하지 않았지만 네이티브 부분 업로드 지원을 제공합니다. 기본 워크 플로우는 다음과 같습니다

  1. 가 업로드-자리를 만들고
  2. 업로드 덩어리 키 응답에 개최 - 동시 필요에 따라 시도 할 수
  3. 를 사용하여 A로 청크를 결합하는 응답 키 단일 파일

Their SDK은 내장 된 파일 자르기 및 청크 업로드를 제공합니다.

S3가 최종 위치가 아니더라도 S3을 업로드 보관 펜으로 사용하고 사용자의 편의에 따라 영구 저장을 위해 파일을 다운로드 할 수 있습니다.

+0

아 - 우리는 곧 Rackspace CloudFiles를 사용합니다 - 곧 Chunked 업로드를 지원할 것입니다 (방금 로드맵을 확인했습니다). 나는 그런 생각조차하지 않았다. 아이디어를 가져 주셔서 감사합니다! – FunnyLookinHat

0

HTTP 게시물에 대한 이해가 정확하지 않습니다. HTTP 표준은 범위 요청을 GET 메서드에만 제한하지 않습니다. POST 또는 PUT에서도 범위 요청을 사용할 수 있습니다.

또한 클라이언트와 서버 측 스크립트를 모두 제어 할 수 있다면 데이터 청크와 StartAt 위치를 별도의 매개 변수로 게시 할 수 있습니다. 서버에서 매개 변수를 확인하고 수신 된 데이터를 지정된 위치에 추가합니다.

+0

아 그래 - 확실히 수동으로 데이터를 관리 할 수는 있지만 너무 많은 서버 측 (즉, 다른 누군가의 휠을 사용하기에 충분할만큼 바퀴가 발명되지 않았 으면 좋겠습니까?) :) – FunnyLookinHat

관련 문제