首页 文章

如何投放Google Cloud 端存储图片?

提问于
浏览
3

我希望 google.appengine.ext.blobstoregoogle.appengine.api.images 在App Engine之外工作 . 这些模块是否需要App Engine才能工作?我想在Google Cloud 端存储上创建公开但不可猜测的图片网址,并通过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 端存储中提供图像?

1 回答

  • 4

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

    • Managed VMs(GCE上的GAE运行时环境)中运行它们

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

    • 使用公共API(例如Google Cloud 端存储)

    某些App Engine服务(例如Datastore)现在也公开了可以从GCE使用的公共API .

相关问题