google api - library - Google Drive Upload devuelve errores de servidor 50x intermitentemente
sdk de drive (1)
Estoy usando la API java google drive para cargar algunos archivos en varias carpetas de Google Drive. El usuario cuyas credenciales estoy usando tiene acceso a todas las carpetas.
Estoy cargando alrededor de 100 archivos PDF y 100 archivos CSV de dos servidores diferentes que ejecutan CentOS. Estas suelen ser actualizaciones, aunque de vez en cuando inserte los archivos. Estos archivos tienen un tamaño entre 35k y 700 bytes, por lo que no son grandes.
Hace aproximadamente una semana, comencé a recibir excepciones cuando cargaba los archivos CSV (pero no los archivos PDF). Las excepciones se ven así:
com.google.api.client.googleapis.json.GoogleJsonResponseException: 500 Internal Server Error
{
"code" : 500,
"errors" : [ {
"domain" : "global",
"message" : "Internal Error",
"reason" : "internalError"
} ],
"message" : "Internal Error"
}
at com.google.api.client.googleapis.json.GoogleJsonResponseException.from(GoogleJsonResponseException.java:145)
at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:113)
at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:40)
Esto ocurre tanto al convertir el archivo csv como cuando no se está convirtiendo (esta respuesta implica que la conversión es el problema: SDK de Google Drive - 500: Error interno del servidor: el archivo se carga correctamente la mayor parte del tiempo ).
También he visto 503 errores:
com.google.api.client.googleapis.json.GoogleJsonResponseException: 503 Service Unavailable
{
"code" : 503,
"errors" : [ {
"domain" : "global",
"message" : "Backend Error",
"reason" : "backendError"
} ],
"message" : "Backend Error"
}
at com.google.api.client.googleapis.json.GoogleJsonResponseException.from(GoogleJsonResponseException.java:145)
at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:113)
at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:40)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest$1.interceptResponse(AbstractGoogleClientRequest.java:312)
Los errores no parecen desaparecer, se han intentado en diferentes momentos del día y desde diferentes computadoras y con diferentes credenciales y diferentes carpetas (aunque siempre se accedió usando el mismo proyecto API).
La página de estado de Google no dice nada acerca de la desactivación de la API de Drive: http://www.google.com/appsstatus#hl=en&v=status
La consola API que utilizo para ver el número de solicitudes API no tiene información.
Aquí está la información de mi entorno:
- java 1.6.0_25-b06
- google-api-services-drive: v2-rev126-1.18.0-rc
- usando jackson: com.google.api.client.json.jackson.JacksonFactory
- com.google.api.client.http.javanet.NetHttpTransport ()
Hago un retroceso exponencial como se describe aquí: https://developers.google.com/drive/web/handle-errors#implementing_exponential_backoff pero solo para 403 errores.
He hecho algunas búsquedas en Google del mensaje de error y estoy viendo preguntas sobre SO. Este indica que la única respuesta es esperar: 500 Internal Server Error v3 Upload API: GoogleJsonResponseException, pero ha pasado más de una semana.
Estoy perplejo. Publicaré aquí porque aparentemente este es el mejor lugar para obtener asistencia para problemas con Google Drive ( https://developers.google.com/drive/support )
Actualizar:
Más detalles. He intentado:
- bajando el número de hilos a 1 (tenía hasta 15 hilos empujando archivos). Sin cambios, todavía obtiene el error.
- solo presionando los CSV (no los PDF). Sin cambios, todavía obtiene el error.
- estableciendo ''crear nueva revisión'' en falso en la actualización: https://developers.google.com/drive/v2/reference/files/update Sin cambios, sigue recibiendo el error.
- empujando los CSV a diferentes nombres de archivo. Esto funcionó!
- borrando el CSV de la carpeta. Esto funcionó!
- agregando esperas antes de llamadas a google, que van desde 200ms a 500ms
Los archivos PDF que se cargan bien tienen dos órdenes de magnitud menos revisiones (~ 20). El número de revisiones en algunos de los archivos csv es hasta 2000+. No estoy seguro si eso es un problema o no.
Una solución alternativa es eliminar los archivos CSV a través de la interfaz web. Asegúrate de eliminarlos por completo, ya que moverlos a la papelera es insuficiente.