我正在开发一个需要将大文件上传到服务器的项目。我使用NSURLSession来设置后台传输服务。一切似乎工作得很好,但我相信它继续在32K发送块。我想知道是否有办法增加块大小?
以下是设置上传任务的示例代码:
NSURLSessionConfiguration *sessionConfig = [NSURLSessionConfiguration backgroundSessionConfiguration:identifier];
sessionConfig.HTTPMaximumConnectionsPerHost = 1;
NSURLSession *upLoadSession = [NSURLSession sessionWithConfiguration:sessionConfig delegate:self delegateQueue:nil];
NSMutableURLRequest *request = [self configureURLRequest];
NSURLSessionUploadTask *uploadTask = [upLoadSession uploadTaskWithRequest:request fromFile:[NSURL fileURLWithPath:filePath]];
[uploadTask resume];
这是代表示例代码。:
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didSendBodyData:(int64_t)bytesSent totalBytesSent:(int64_t)totalBytesSent totalBytesExpectedToSend:(int64_t)totalBytesExpectedToSend {
DLog(@"didSendBodyData: %lld, totalBytesSent: %lld, totalBytesExpectedToSend: %lld", bytesSent, totalBytesSent, totalBytesExpectedToSend);
}
同样,有没有办法增加使用NSURLSession上传的块大小?默认情况下它是32K。
答案 0 :(得分:0)
使用NSURLSession API时无法控制块大小。作为旁注,你可能不想这样做。当设备执行诸如从WiFi更改为蜂窝网络或交换手机信号塔之类的操作时,您的带宽将会发生变化。我希望操作系统能够不断适应这些复杂的变化变量,通过限制应用带宽来做出反应。你真的想要这个,因为在crumby cell网络上发出贪婪的请求很可能会失败。