Sto tentando di caricare un file di grandi dimensioni 2 GB in background utilizzando NSURLSessionUploadTask
. Il servizio utilizza il formato multipart, quindi per caricarlo in background sto creando un file temporaneo con il corpo della richiesta, quindi sto usando un uploadTask per pianificare il caricamento e quando i file finiscono il caricamento sto cancellando il file temporaneo .NSURLSessione in background caricamento di file enormi
NSURLSessionUploadTask *uploadTask = [[self backgroundNSURLSession] uploadTaskWithRequest:uploadRequest fromFile:filePath]; [uploadTask resume];
Con i file più piccoli quindi 1.4 GB l'upload funzionava male, ma quando provo a caricare i file video di 2 GB, il caricamento non riesce. Il server sta restituendo un messaggio di errore che non ho allegato il file.
Sto rifattorizzando il componente di upload da ASIHTTP a NSURLSession se eseguo il caricamento con ASIHTTP funziona anche per file di grandi dimensioni.
Questo è il modo in Creo il mio 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];
Quindi il problema è solo per i file di grandi dimensioni, per i piccoli file viene eseguito il caricamento. Qualcun altro ha riscontrato lo stesso problema?
Sei sicuro che non sia qualcosa di semplice come il timeout dell'IntervalForResource che è troppo basso? –
Non sono sicuro che sia ancora utile, ma ho cambiato timeIntervalForResource e forRequest con un valore enorme e lo stesso problema. –
2 anni dopo che hai fatto la domanda, è stato un grande intervallo di tempo !!! –