如何提供Google Cloud Storage图片?
我想google.appengine.ext.blobstore
和google.appengine.api.images
到App
Engine的工作之外。这些模块是否需要App Engine才能正常运行?我想在Google Cloud
Storage上为图像创建公共的但不可猜测的URL,并通过Django提供它们。
我了解到这是通过google.appengine.ext.blobstore.create_gs_key()
和完成的google.appengine.api.images.get_serving_url()
。这是我到目前为止所拥有的:
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)
并且image_url应该是我的图像的公共但不可猜测的URL。如果我运行此代码,则错误为
AssertionError: No api proxy found for service "blobstore"
这表明blobstore需要代理(也称为App Engine)才能发挥其魔力。App Engine模块可以在App
Engine之外运行吗?文档说,以上是提供图像的有效方法,因为我可以为每个图像生成一个URL,还可以动态调整图像的大小。
这个策略行得通吗?还是有更好的方法通过Django从Google Cloud Storage提供图像?