AFNetworking POST para Amazon S3

Estoy tratando desesperadamente de upload una image a Amazon S3 desde la galería de imágenes de un iPhone. Probé la solución aquí:

Carga de la POST de Amazon S3 en iOS

pero fue en vano. Desde entonces he adaptado mi código a lo siguiente:

AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:[NSURL URLWithString:[uploadResult objectForKey:@"url"]]]; NSMutableURLRequest *request = [httpClient multipartFormRequestWithMethod:@"POST" path:nil parameters:nil // amazonDictionary constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) { /* [formData appendPartWithFileData:UIImageJPEGRepresentation(selectedImageView.image, .9) // (selectedImageView.image) name:@"file" // NB! To post to S3 name should be "file", not real file name fileName:@"filename.jpg" mimeType:@"image/jpeg"]; */ [formData appendPartWithFormData:[[uploadResult objectForKey:@"s3Key"] dataUsingEncoding:NSUTF8StringEncoding] name:@"AWSAccessKeyId"]; [formData appendPartWithFormData:[[uploadResult objectForKey:@"s3PolicyBase64"] dataUsingEncoding:NSUTF8StringEncoding] name:@"Policy"]; [formData appendPartWithFormData:[[uploadResult objectForKey:@"s3Signature"] dataUsingEncoding:NSUTF8StringEncoding] name:@"Signature"]; [formData appendPartWithFormData:[@"image.jpg" dataUsingEncoding:NSUTF8StringEncoding] name:@"key"]; [formData appendPartWithFormData:[@"image/jpeg" dataUsingEncoding:NSUTF8StringEncoding] name:@"Content-Type"]; [formData appendPartWithFormData:[@"public-read" dataUsingEncoding:NSUTF8StringEncoding] name:@"acl"]; [formData appendPartWithFormData:UIImageJPEGRepresentation(selectedImageView.image, .9) name:@"file"]; }]; 

Para mayor claridad, la URL base que proporciono para iniciar mi AFHTTPClient es una URL de la forma

"http: //" + bucket + ".s3.amazonaws.com"

Actualmente, recibo el error "Política no válida: JSON no válido". cuando analizo el XML presentado por S3. La ayuda para resolver este problema es muy apreciada.

Debo señalar que tengo el siguiente código en una aplicación web que funciona para cargar una image:

 var fd = new FormData(); fd.append("AWSAccessKeyId", data.s3Key); fd.append("Policy", data.s3PolicyBase64); fd.append("Signature", data.s3Signature); fd.append("key", file.name); fd.append("acl", "public-read"); fd.append("Content-Type", file.type); fd.append("file", file); $http({ method: 'POST', url: data.url, data: fd, transformRequest: angular.identity, headers: {'Content-Type': undefined} }) 

Recibo el error "Política no válida: JSON no válido". cuando analizo el XML

Parece que está intentando utilizar el controller JSON AFNetworking en lugar de su propio controller XML. Si la respuesta es XML, no puede utilizar el analizador JSON incorporado desde AFNetworking, debe analizar el NSData devuelto usted mismo.

ACTUALIZAR

¿Has intentado inspeccionar el JS POST saliendo usando algo como HTTPScoop? Tal vez en realidad sea malformado y no como lo esperaba Amazon.