NSURLSession后台上传巨大文件



我正试图使用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];

因此,问题只针对大文件,而针对小文件则执行上载。其他人遇到过同样的问题吗?

根据苹果开发商对房地产的描述如果文件太大,系统可能会像WIFI连接一样等待一个好时机。

将任意属性切换为"否",然后重试。祝你好运

self.configuration.discretionary = NO;

相关内容

  • 没有找到相关文章

最新更新