Python 如何为谷歌云存储图像服务?

Python 如何为谷歌云存储图像服务?,python,django,google-app-engine,google-cloud-storage,blobstore,Python,Django,Google App Engine,Google Cloud Storage,Blobstore,我想要google.appengine.ext.blobstore和google.appengine.api.images在应用引擎之外工作。这些模块是否需要App Engine才能工作?我想在谷歌云存储上创建公开但不可猜测的图片URL,并通过Django提供服务 我听说这是通过google.appengine.ext.blobstore.create_gs_key()和google.appengine.api.images.get_service_url()完成的。这就是我到目前为止所做的:

我想要
google.appengine.ext.blobstore
google.appengine.api.images
在应用引擎之外工作。这些模块是否需要App Engine才能工作?我想在谷歌云存储上创建公开但不可猜测的图片URL,并通过Django提供服务

我听说这是通过
google.appengine.ext.blobstore.create_gs_key()
google.appengine.api.images.get_service_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)
图像url应该是我的图像的一个公共但不可猜测的url。如果我运行此代码,则错误为

AssertionError: No api proxy found for service "blobstore"
这表明blobstore需要一个代理,又名appengine,才能发挥它的魔力。应用程序引擎模块能否在应用程序引擎之外工作?文档说,以上是一种强大的图像服务方式,因为我可以为每个图像生成URL,还可以动态调整图像大小


这一策略有效吗?还是有更好的方法使用Django从Google云存储服务图像?

blobstore和图像API仅在App Engine运行时环境中可用。要在计算引擎中运行它们,您可以:

  • 在内部运行它们(GCE上的GAE运行时环境)

  • 使用GAE API仿真器(例如)在您自己的基础架构或GCE上运行它们

  • 改用公共API(如谷歌云存储)


一些应用程序引擎服务(如)现在还公开了您可以从GCE使用的公共API。

这是行不通的。先决条件:“您需要有一个appengine项目。对于非appengine django项目,这不能作为独立的解决方案,因为没有实现google云存储的身份验证机制。”我没有App Engine项目,也不想要。我在Google Compute Engine上有一个独立的Django项目。你可以直接从存储桶中提供你的图像,只需让它具有全世界的可读性。您必须使用应用程序引擎才能使用应用程序引擎组件,如blobstore、get_serving URL afaik。您是正确的。我现在正在研究Python的Google API客户端库。