sesion online nube iniciar google entrar dire descargar almacenamiento objective-c google-drive-sdk google-drive-realtime-api

objective-c - nube - google drive online



API de Google Drive: enumere archivos especĂ­ficos en una carpeta especĂ­fica usando Objective-C (1)

Estoy trabajando en una integración de Google Drive para iOS y me he topado con un inconveniente: necesito verificar la existencia de un archivo en una carpeta, pero sigo obteniendo una respuesta de "500 errores internos" sin importar cómo me veo. armar la solicitud Creo que esto debería ser legítimo:

// self.directoryDriveFile.identifier is a valid folder identifier retrieved on previous request GTLQueryDrive *query = [GTLQueryDrive queryForChildrenListWithFolderId:self.directoryDriveFile.identifier]; // add query to specify the file we''re interested in (works in Java version...) query.q = [NSString stringWithFormat:@"title=''%@'' and trashed=false", ZTCloudSyncLockFileName]; // stopping in debugger shows query.q: title=''sync.lock'' and trashed=false // fire off request [self.driveService executeQuery:query completionHandler:^(GTLServiceTicket *ticket, GTLDriveFileList *files, NSError *error) { if (error == nil) { if ([files.items count] > 0) { self.foundLockfile = YES; } else { self.foundLockfile = NO; } } else { DLog(@"An error occurred loading lockfile request: %@", error); [self bailWithError:error performCleanup:NO]; } }];

Cuando se ejecuta la consulta, siempre termina en un error, con la siguiente información de error dispersa:

Error Domain=com.google.GTLJSONRPC ErrorDomain Code=500 "The operation couldn’t be completed. (Internal Error)" UserInfo=0x99c4660 { error=Internal Error, GTLStructuredError=GTLErrorObject 0x99c4360: { message:"Internal Error" code:500 data:[1]}, NSLocalizedFailureReason=(Internal Error)}

También he intentado la siguiente consulta más básica, especificando una cláusula de los parents , pero termino con el mismo objeto de error desaprovechado que se muestra arriba:

GTLQueryDrive *altQuery = [GTLQueryDrive queryForFilesList]; altQuery.q = [NSString stringWithFormat:@"title=''%@'' and trashed=false and ''%@'' in parents", ZTCloudSyncLockFileName, self.directoryDriveFile.identifier];

Eso también debería funcionar, pero también produce un error de 500.

Información adicional: probado lo siguiente al trabajar en esto:

  • Verifique la carpeta en el directorio raíz-OK
  • Crear carpeta en el directorio raíz-OK
  • Compruebe el archivo llamado sync.lock en el directorio raíz-OK

-(void)fetchGoogleDriveFileListWithfolderId:(NSString *)folderId :(void (^)(NSMutableArray *, NSError*))completionBlock { GTLQueryDrive *query = [GTLQueryDrive queryForFilesList]; query.q =[NSString stringWithFormat:@"''%@'' in parents and trashed=false", folderId]; GTLServiceTicket *ticketListing = [self.driveService executeQuery:query completionHandler:^(GTLServiceTicket *ticket,GTLDriveFileList *files, NSError *error) { NSMutableArray *mainArray=[[NSMutableArray alloc]init]; if (error == nil) { completionBlock(files.items,nill); } else { NSLog(@"An error occurred: %@", error); completionBlock(nil,error); } }]; }

Puede usar el método anterior para buscar el contenido de la carpeta. Aquí folderId es

  • "Raíz" (Unidad principal)
  • "SharedWithMe" para la carpeta compartida
  • Valor del identificador GTLDrivefile