Cargar archivos en Google Cloud Storage con Google App Engine (Python)

Estoy intentando configurar un sitio de motor de aplicación de google basado en python básico que permita a los usuarios cargar archivos en el almacenamiento en la nube de Google (principalmente imágenes)

He estado revisando la documentación de la API JSON y la descripción general de la biblioteca del cliente GCS (así como de blobstore, etc.) y aún no tengo un buen control sobre cuál es el mejor método y cómo se relacionan. Sería genial si alguien pudiera dar una visión general de esto o señalarme algunos recursos que pueda consultar

Además, cualquier código de muestra que sea relevante sería realmente útil. He podido ejecutar los ejemplos de carga aquí, pero no estoy seguro de si son útiles para la configuración de un motor de aplicaciones: https://github.com/GoogleCloudPlatform/storage-file-transfer-json-python

¡¡Gracias!!

Google Cloud Storage tiene dos API: la API XML y la API JSON . La API XML está basada en XML y es muy parecida a la API de Amazon S3. La API de JSON es similar a muchas otras API de Google y funciona con las bibliotecas de cliente estándar de la API de Google (por ejemplo, la biblioteca Python de la API de Google ). Estas dos API se pueden usar desde cualquier lugar, con o sin App Engine, y se basan en llamadas HTTP RESTful.

App Engine proporciona un par de formas estándar para acceder a Google Cloud Storage. El primero está integrado en la API de App Engine como una característica llamada “API de Python de Google Cloud Storage” . Esto no utiliza directamente ni el XML ni la API de JSON. Está en desuso y ya no se recomienda.

La segunda biblioteca de App Engine se llama “Google Cloud Storage Python Client Library” y no forma parte de la API principal de App Engine. En su lugar, es una biblioteca de Python distribuida por Google que puede descargar y agregar a su aplicación como cualquier otra biblioteca. Esta biblioteca pasa a implementarse utilizando la API XML. Proporciona algunas funciones adicionales que son útiles para los usuarios de App Engine, como la capacidad de serializar una carga mientras está en progreso. Hay un ejemplo de uso de esta biblioteca incluida como parte de la descarga, en el directorio python / demo. También puedes verlo en línea .

Los equivalentes de estas herramientas también existen en Java y Go.

No es necesario que los usuarios utilicen las bibliotecas específicas de App Engine a menos que encuentren que son útiles. La biblioteca estándar de Python o incluso solo las llamadas HTTP escritas a mano que utilizan urlfetch funcionarán igual de bien. La biblioteca de App Engine simplemente proporciona algunos extras útiles para los usuarios de App Engine.

App Engine también tiene un “Blobstore Python API”. Esta es una característica específica de App Engine y distinta de Google Cloud Storage, excepto que proporciona algunos enlaces a Google Cloud Storage, como la capacidad de almacenar archivos en Google Cloud Storage mediante la API de Blobstore.