を使用してバックグラウンドで 2GB の大きなファイルをアップロードしようとしています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];
したがって、問題は大きなファイルの場合のみであり、小さなファイルの場合はアップロードが実行されます。他の誰かが同じ問題に遭遇しましたか?