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