Estoy tratando de usar AmazonS3Client para putObject. Lo extraño es que parece funcionar cuando ejecuto mi código putObject en el hilo principal de iOS.AmazonS3Client putObject solo funciona en el hilo principal de iOS?
El código es básicamente lo siguiente:
-(void)uploadVideoToS3
{
S3PutObjectRequest * videoPOR = [[S3PutObjectRequest alloc] initWithKey:video.onlineVideoID inBucket:video.onlineVideoBucketName];
videoPOR.contentType = @"video/quicktime";
videoPOR.data = [NSData dataWithContentsOfURL:video.convertedVideoLocalURL];
videoPOR.delegate = self;
// Put the thumbnail and video into the specified s3
AmazonS3Client * s3 = [AmazonClientManager s3];
[s3 putObject:videoPOR];
[videoPOR release];
}
existe el cubo, tengo permisos, etc. Si simplemente me llamo
[self uploadVideoToS3]
en mi código (que es el hilo principal) , se ejecuta todo el método de carga de video (tengo algunos NSLogs para probar esto), pero nunca recibo ninguna devolución de llamada de estado, no se lanzan excepciones, y el objeto nunca se pone en su cubo en S3.
Cuando llamo a la función de carga en el hilo principal de este modo:
dispatch_async(dispatch_get_main_queue(), ^(void) {
[self uploadVideoToS3];
});
consigo devoluciones de llamada progreso, todo funciona, y el objeto se coloca correctamente en el contenedor de S3.
¿Alguien sabe si putObject solo funciona en el hilo principal de iOS? Si es así, sería desafortunado ya que normalmente es el hilo de la interfaz de usuario.
Gracias, Kevin
P. S. He intentado enviar la llamada de función a un hilo no principal con el mismo resultado fallido.
¿con qué código intentaron enviarlo a otro hilo? – Pochi
'dispatch_async (dispatch_get_global_queue (DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),^{[self uploadVideoToS3]});' – kevlar
encontró un artículo interesante en el sitio web de AWS. Usar dispatch_async podría ser el problema. No estoy seguro, pero aquí tienes -> Evita usar dispatch_sync en el hilo principal tanto como sea posible .http: //mobile.awsblog.com/post/Tx1ZZHQHSD0O3SF/Using-the-AWS-SDK-for-iOS-Asynchronously- Parte-IV-Grand-Central-Dispatch-GCD-Best –