Я пытаюсь загрузить файлы через FTP на сервер. В соответствии с Документация Apple Класс NSURLSession поддерживает операции FTP.
Существует знаменитый блог Apple Developer, который также поддерживает это. Но все же неясно, поддерживает ли NSURLSession API ftp-загрузку или нет? (Я попытался с предложенным способом и получив ошибку).
С обычным способом CFFTPStreamRef загрузка ftp работает нормально, но она устарела в 9.0. Заголовок говорит: CF_DEPRECATED (10_3, 10_11, 2_0, 9_0, "Использовать NSURLSessionAPI для ftp-запросов" )
Любая идея, пример или ссылка для получения справки. Я сейчас пытаюсь сделать что-то вроде этого:
NSURL *url_upload = [NSURL URLWithString:@"ftp://username:[email protected]/myfolder/filename.zip"];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url_upload];
[request setHTTPMethod:@"PUT"];
NSURL *docsDirURL = [NSURL fileURLWithPath:filePath];
NSURLProtectionSpace * protectionSpace = [[NSURLProtectionSpace alloc] initWithHost:url_upload.host port:[url_upload.port integerValue] protocol:url_upload.scheme realm:nil authenticationMethod:nil];
NSURLCredential *cred = [NSURLCredential
credentialWithUser:userId
password:password
persistence:NSURLCredentialPersistenceForSession];
NSURLCredentialStorage * cred_storage ;
[cred_storage setCredential:cred forProtectionSpace:protectionSpace];
NSURLSessionConfiguration *sessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration];
sessionConfig.URLCredentialStorage = cred_storage;
sessionConfig.timeoutIntervalForRequest = 30.0;
sessionConfig.timeoutIntervalForResource = 60.0;
sessionConfig.allowsCellularAccess = YES;
sessionConfig.HTTPMaximumConnectionsPerHost = 1;
NSURLSession *upLoadSession = [NSURLSession sessionWithConfiguration:sessionConfig delegate:self delegateQueue:nil];
NSURLSessionUploadTask *uploadTask = [upLoadSession uploadTaskWithRequest:request fromFile:docsDirURL];
[uploadTask resume];