我正在做一个需要将大文件上传到服务器的项目。我使用 NSURLSession 来设置后台传输服务。一切似乎都工作得很好,但我相信它会继续发送 32K 的数据 block 。我想知道是否有办法增加 block 大小?
以下是设置上传任务的示例代码:
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];
这是委托(delegate)示例代码:
- (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 上传的 block 大小?默认为 32K。
最佳答案
在使用 NSURLSession API 时没有办法控制 block 大小。作为旁注,您可能不想这样做。当设备执行诸如从 WiFi 更改为蜂窝电话或更换手机信号塔等操作时,您的带宽将会发生变化。我希望操作系统不断适应这些复杂的变化变量,通过限制您的应用程序带宽使用react。你实际上想要这个,因为在一个脆弱的蜂窝网络上发出贪婪的请求很可能会失败。
关于iOS:如何增加 NSURLSession 上传任务的 block 大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20131900/