2011-03-12 8 views
5

매우 큰 파일 (100MB 평균)을 다운로드해야하는 앱을 개발했습니다. 모든 기능은 정상적으로 작동하지만 모바일 연결이 몇 초 동안 0으로 떨어지거나 무선 대기 상태가되면 서비스 (예 : 시장 업데이트)에서 실행되는 다운로드가 중단되거나 중단 될 수 있습니다. 오류가 발생했을 때 복구 할 수있는 방법이 있습니까? http 범위 일 수 있습니다. 누군가 이미 문제가 발생하면 작업 코드의 예가 좋을 것입니다. :-) 감사합니다오류 복구시 큰 파일을 Android에서 다운로드

답변

2

서버에서 "split"을 사용하여 여러 개의 작은 파일로 분할하고 md5sum으로 md5sums의 검사 파일을 생성합니다.

안드로이드에서 모든 조각을 다운로드하고 md5sum을 확인한 다음 돌아가서 올바르게 다운로드하지 않은 것을 가져 와서 함께 수집해야합니다.

나는 결코 이것을 안드로이드에서 해본 적이 있지만, 나쁜 옛날에 벗겨지기 쉬운 전화 모뎀 연결로 많은 시간을 사용 해왔다.

+1

이것이 효과적 일지 모르지만 조금 지나치게 과장되지는 않습니까? 나는 안드로이드 개발자가 아니지만 그는 가상 덩어리로 파일을 쉽게 분할 할 수 있습니다. 서버 (HTTP 범위 사용)에서 청크를 요청하고, 청크 상태에 비트 필드를 사용하고, 전달되지 않은 청크를 다시 요청합니다. 체크섬이 필요하지 않으므로 TCP/IP는 데이터가 올바른지 확인합니다. 안드로이드에서 구현에 관한 답변이 없기 때문에 주석 달기. –

+0

@Ekin 서버에서 파일을 분리하는 것보다 HTTP 범위 요청을하는 것이 더 쉬운지 여부에 달려 있습니다. 체크섬을 사용하는 유일한 이유는 파일 크기를 몰라도 중단 된 다운로드를 처리하기 위해서입니다. Dinsosaur-ish, 알아. – Paul

+0

서버에서 파일을 분할하는 경우 특정 호출이 필요하지 않습니다. 고객에게 잘못된 부분이나 손상된 부분을 알려주는 부분 체크섬을 사용하여 다른 부분의 URL을 고객에게 제공합니다. -다운로드 해. 내 생각은 파일을 분할하지 않고 http 범위를 사용하는 것이 었습니다.이 경우 파일을 분할 할 수없는 것보다 서버에 대한 제어 권한이없는 경우에도 문제를 해결할 수 있습니다. 제 질문은 특정 다운로드 오류를 잡아 내고 사용자에게 http 범위 방법으로 복원하도록 요청하는 것이 가장 좋습니다. –

관련 문제