2014-02-13 5 views
0

Dropbox 동기화 API를 사용하여 텍스트 파일을 다운로드하고 iOS 애플리케이션을 통해 Dropbox로 비디오 파일을 업로드합니다.보관 용 계정 동기화 api 대용량 파일 업로드

무거운 비디오 파일을 업로드하는 중 어려움을 겪고 있습니다. 15 ~ 20 분의 비디오 파일을 업로드하는 동안 올바르게 업로드되었지만 지속 시간이 25 분을 초과하면 이 발생하여 메모리가 깨지고 응용 프로그램이 다운됩니다. 이 문제에서 내가 업로드 버튼 액션에이 코드를 사용하고

DBPath *paths=[[DBPath root] childPath:[self.allVideoArray objectAtIndex:Selectedvideo]]; 
DBFile *createfile=[filesystem createFile:paths error:nil]; 
NSData *data=[[NSData alloc]initWithContentsOfFile:self.path]; 
[createfile writeData:data error:nil];  
[data relese]; 

하십시오 일부 신체 방법 날. 어떤 도움을 주셔서 감사합니다 미리 감사드립니다.

+0

Sync API에서 동영상 업로드를 허용하지 않는 것 같습니다. 파일 형식이 허용되지 않습니다. Sync API로 어떻게 작동 시켰습니까? – Siriss

답변

1

전체 파일이 포함 된 NSData 인스턴스를 만드는 것이 문제입니다. 파일이 너무 커서 메모리에 저장되지 않으면 앱이 다운됩니다. DBFile에 대용량 파일을 작성하는 더 좋은 방법이 있습니다.

당신은 당신이 할 수있는 로컬 파일의 경로를 가지고 있기 때문에 :

DBPath *paths=[[DBPath root] childPath:[self.allVideoArray objectAtIndex:Selectedvideo]]; 
DBFile *createfile=[filesystem createFile:paths error:nil]; 
[createFile writeContentsOfFile:self.path shouldSteal:NO error:nil]; 

또 다른 옵션은 작은 덩어리 self.path에서 파일을 읽고 DBFile appendData:error:을 사용하는 것입니다.

사이드 노트 - 이러한 호출이 작동하는지 확인하려면 반환 값을 확인하고 error 매개 변수를 사용하여 문제의 원인 (있는 경우)을 기록해야합니다.

+1

@ rmaddy 귀하의 회신을 보내 주셔서 감사합니다 귀하의 코드를 사용하여 충돌을 피할 수 있지만 작은 비디오 파일이 성공적으로 업로드됩니다. 그러나 무거운 비디오의 경우 드롭 상자에 표시되지만 0 바이트도 표시합니다. –

+0

'writeContentsOfFile : shouldSteal : error :'의 반환 값을 확인하고 있습니까? '아니오'를 반환하면 오류를 확인하십시오. – rmaddy

+0

@ rmaddy 예를 반환하는지 확인했지만 디버거 콘솔에서 [WARNING] ERR : DROPBOX_ERROR_NOTFOUND : sync.hpp : 282 : p (/c7.mov)가 존재하지 않습니다. –

관련 문제