NSURLSessionUploadTask
을 사용하여 백그라운드에서 2GB의 대용량 파일을 업로드하려고합니다. 이 서비스는 멀티 파트 포맷을 사용하므로 백그라운드에서 업로드하려면 요청 본문이 포함 된 임시 파일을 생성하고 나서 uploadTask를 사용하여 업로드를 예약하고 파일 업로드가 완료되면 임시 파일을 삭제합니다 . 1.4 GB 업로드 후 작은 파일로NSURLSession 백그라운드에서 거대한 파일 업로드
NSURLSessionUploadTask *uploadTask = [[self backgroundNSURLSession] uploadTaskWithRequest:uploadRequest fromFile:filePath]; [uploadTask resume];
는 확인했다,하지만 난 2 GB의 비디오 파일을 업로드 할 때, 업로드가 실패합니다. 서버가 파일을 첨부하지 않았다는 오류 메시지를 반환합니다.
ASIHTTP로 업로드를 수행하면 업로드 파일을 ASIHTTP에서 NSURLSession으로 리팩토링합니다. 대용량 파일에서도 작동합니다.
if ([NSURLSessionConfiguration respondsToSelector:@selector(backgroundSessionConfigurationWithIdentifier:)]) {
self.configuration = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:appID];
} else {
self.configuration = [NSURLSessionConfiguration backgroundSessionConfiguration:appID];
}
self.configuration.HTTPMaximumConnectionsPerHost = 1;
self.configuration.discretionary = YES;
self.configuration.timeoutIntervalForResource = 60*60;
self.configuration.timeoutIntervalForRequest = 60*60;
backgroundSession = [NSURLSession sessionWithConfiguration:self.configuration delegate:self delegateQueue:nil];
그래서 문제가 작은 파일의 업로드가 수행되어, 큰 파일만을위한 것입니다 :
이 내가 내 NSURLSession을 만드는 방법이다. 다른 누구도 같은 문제를 겪었습니까?
timeoutIntervalForResource가 너무 낮아서 간단하지 않은 것이 확실합니까? –
이것이 여전히 유용한 지 잘 모르겠지만 timeIntervalForResource 및 forRequest를 큰 값으로 변경했지만 여전히 동일한 문제가 있습니다. –
질문을한지 2 년 후에, 그것은 큰 시간 간격이었습니다! –