Я пытаюсь загрузить большой файл 2GB в фоновом режиме, используя NSURLSessionUploadTask
. Служба использует многостраничный формат, поэтому, чтобы загрузить его в фоновом режиме, я создаю временный файл с телом запроса, затем я использую uploadTask для планирования загрузки и когда файлы заканчивают загрузку, я удаляю временный файл ,NSURLSession фоновая загрузка огромных файлов
NSURLSessionUploadTask *uploadTask = [[self backgroundNSURLSession] uploadTaskWithRequest:uploadRequest fromFile:filePath]; [uploadTask resume];
с файлами меньшего размера, то 1.4 ГБ загрузки работал нормально, но когда я пытаюсь загрузить видео файлов 2 Гб, загрузка не выполняется. Сервер возвращает сообщение об ошибке, что я не прикреплял файл.
Я реорганизую компонент загрузки из ASIHTTP в NSURLSession, если я загружаю с 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];
Так что проблема есть только для больших файлов, для небольших файлов загрузка выполняется. Кто-нибудь еще сталкивался с той же проблемой?
Вы уверены, что это не что-то простое, как timeoutIntervalForResource, слишком низкое? –
Я не уверен, что это все еще полезно, но я изменил timeIntervalForResource и forRequest на огромное значение и все еще ту же проблему. –
Через 2 года после того, как вы задали вопрос, это был большой промежуток времени! –