我试图使用NSURLSessionUploadTask在后台上传一个2GB的大文件.该服务使用多部分格式,所以为了在后台上传我正在创建一个带有请求主体的临时文件,然后我使用uploadTask来安排上传,当文件完成上传时我正在删除临时文件.
NSURLSessionUploadTask * uploadTask = [[self backgroundNSURLSession] uploadTaskWithRequest:uploadRequest fromFile:filePath];
[uploadTask resume];
对于小于1.4 GB的文件,上传工作正常,但是当我尝试上传2 GB的视频文件时,上传失败.服务器返回错误消息,我没有附加文件.
我正在将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];
因此问题仅适用于大文件,对于小文件,执行上载.还有其他人遇到过同样的问题吗?