iOS, как загрузить большой файл активов в сервер потоковой передачи

Я новый программист iOS.
Я хочу загрузить большой файл (видео или изображение) избиблиотека активов в мой, мой оригинальный способ просто использоватьNSMutableURLRequest и добавитьNSData(большое видео или большое изображение), и сбой произошел в следующем коде:

    ALAssetsLibraryAssetForURLResultBlock resultblock = ^(ALAsset *asset){
        //.......some code I just skip it...
        ALAssetRepresentation *rep = [asset defaultRepresentation];
        void *buffer = [rawData mutableBytes];
        [rep getBytes:buffer fromOffset:0 length:size error:nil];
        NSData *videoData = [[NSData alloc] initWithBytes:buffer length:size];//crash here
        [self startUploading:videoData];
    }

Я знаю, что это сбой, потому что памяти недостаточно, видеофайл не может быть просто выделен для NSData.
Я гуглю это в течение 2 дней, и кажется, есть несколько способов решить эту проблему.

использовать стороннюю библиотеку: такую как AFNetworking, ASIHTTPRequest (но я не хочу ее использовать, потому что не знаю, когда это прекратит поддерживать или обновлять)использовать потоковую передачу для загрузки большого файла

и я хочу использовать потоковый способ (пункт 2), чтобы загружать вещи,
Я нашел эту ссылку:http://zh.scribd.com/doc/51504708/10/Upload-Files-Over-HTTP
Похоже, может решить мою проблему, но все еще не очень понятно, как это сделать

Вопрос 1: в этой ссылке есть пример, файл для загрузки из пакета
как превратить актив в поток? или скопировать актив в папку приложения?
Я нашел эту ссылкуСкопируйте изображение из библиотеки ресурсов в папку приложения
но до сих пор не могу найти дорогу.

Вопрос 2: или есть другой более понятный пример потоковой передачи для загрузки большого файла?



Спасибо за вашу страсть

updated1: после того, как я реализовал делегат needNewBodyStream, сообщение «исчерпание потока запросов», похоже, решено, но вместо этого встретил другое «Ошибка Domain = kCFErrorDomainCFNetwork Code = 303« Операция не может быть завершена ». Как ее решить?

-(NSInputStream *)connection:(NSURLConnection *)connection needNewBodyStream:(NSURLRequest *)request
{
    [NSThread sleepForTimeInterval:2];
    NSInputStream *fileStream = [NSInputStream inputStreamWithFileAtPath:pathToBodyFile];
    if (fileStream == nil) {
        NSLog(@"NSURLConnection was asked to retransmit a new body stream for a request. returning nil!");
    }
    return fileStream;
}

Ответы на вопрос(2)

Ваш ответ на вопрос