from - upload file to google storage python
¿Cómo servir imágenes de Google Cloud Storage? (1)
Las API de blobstore y de imágenes solo están disponibles en el entorno de tiempo de ejecución de App Engine. Para ejecutarlos dentro del motor de cómputo puedes:
Ejecútelos dentro de VM administradas (el entorno de tiempo de ejecución de GAE en GCE)
Ejecútelos en su propia infraestructura o GCE usando un emulador GAE API (como AppScale )
Utilice API públicas (como Google Cloud Storage) en su lugar
Algunos servicios de App Engine (como Datastore ) ahora también exponen las API públicas que puede usar desde GCE.
Quiero que google.appengine.ext.blobstore
y google.appengine.api.images
funcionen fuera de App Engine. ¿Estos módulos requieren App Engine para funcionar? Quiero crear URL públicas pero no imaginables de mis imágenes en Google Cloud Storage y servirlas a través de Django.
Leí que esto se hace con google.appengine.ext.blobstore.create_gs_key()
y google.appengine.api.images.get_serving_url()
. Esto es lo que tengo hasta ahora:
from google.appengine.api import images
from google.appengine.ext import blobstore
bucketname = ''mybucket''
gcs_object_name = ''/gs/mybucket/vincent-van-gogh/the-starry-night.jpg''
blob_key = blobstore.create_gs_key(gcs_object_name)
image_url = images.get_serving_url(blob_key)
Y se supone que image_url es una URL pública pero no adivinable de mi imagen. Si ejecuto este código, el error es
AssertionError: No api proxy found for service "blobstore"
Esto sugiere que blobstore necesita un proxy, también conocido como App Engine, para que funcione su magia. ¿Pueden los módulos de App Engine funcionar fuera de App Engine? Los documentos dicen que lo anterior es una forma poderosa de servir imágenes porque puedo generar una URL para cada imagen y también cambiar el tamaño de la imagen de forma dinámica.
¿Funcionará esta estrategia o existe una mejor manera de servir imágenes de Google Cloud Storage con Django?