Erro NSMutableURLRequest e "solicitação do fluxo do corpo esgotado"

Estou com um problema com a solicitação http PUT e o corpo da solicitação como fluxo do arquivo.

Não importa o tamanho do arquivo, recebo o erro "NSURLErrorDomain -1021 request body stream esgotado"

Eu sei que posso substituir esse problema implementando o método:

-(NSInputStream*)connection:(NSURLConnection *)connection needNewBodyStream:(NSURLRequest *)request

mas essa abordagem não é boa, pois fará o upload do arquivo inteiro novamente e 40 MB de arquivo são 80 Mb de transferência de dados.

se eu pegar o mesmo arquivo que o NSData e definir o corpo da solicitação, ele funcionará bem.

Tentei enviar a solicitação assíncrona e sincronize o mesmo resultado em ambas.

Aqui está o meu código, simples e semelhante ao exemplo da Apple:

NSURL *url = [NSURL URLWithString:[self concatenatedURLWithPath:path]];
NSMutableURLRequest *req = [[NSMutableURLRequest alloc] initWithURL:url];
[req setHTTPMethod:@"PUT"];
[req setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];
[request setTimeoutInterval:DEFAULT_TIMEOUT];
[req setValue:_contentType forHTTPHeaderField:@"Content-Type"];
NSInputStream *fileStream = [NSInputStream inputStreamWithFileAtPath:_dataStreamLocation];

[req setHTTPBodyStream:fileStream];
_connection = [[NSURLConnection connectionWithRequest:req delegate:self] retain];

Estou fazendo algo errado? Estou esquecendo de algo?

questionAnswers(3)

yourAnswerToTheQuestion